in IndustrialDeviceController/Software/MT3620_IDC_RTApp/lib/GPT.c [34:128]
static inline int32_t GPT__GetCtrlValue(
GPT *handle,
bool *enabled,
GPT_Mode *mode,
bool *speed,
bool *restart)
{
if (!handle) {
return ERROR_PARAMETER;
}
int32_t error = ERROR_NONE;
switch (handle->id) {
case MT3620_UNIT_GPT0:
if (enabled) {
*enabled = MT3620_GPT_FIELD_READ(gpt0_ctrl, en);
}
if (mode) {
*mode = MT3620_GPT_FIELD_READ(gpt0_ctrl, mode);
}
if (speed) {
*speed = MT3620_GPT_FIELD_READ(gpt0_ctrl, speed);
}
if (restart) {
*restart = MT3620_GPT_FIELD_READ(gpt0_ctrl, restart);
}
break;
case MT3620_UNIT_GPT1:
if (enabled) {
*enabled = MT3620_GPT_FIELD_READ(gpt1_ctrl, en);
}
if (mode) {
*mode = MT3620_GPT_FIELD_READ(gpt1_ctrl, mode);
}
if (speed) {
*speed = MT3620_GPT_FIELD_READ(gpt1_ctrl, speed);
}
if (restart) {
*restart = MT3620_GPT_FIELD_READ(gpt1_ctrl, restart);
}
break;
case MT3620_UNIT_GPT2:
if (enabled) {
*enabled = MT3620_GPT_FIELD_READ(gpt2_ctrl, en);
}
if (mode) {
*mode = GPT_MODE_NONE;
}
if (speed) {
*speed = MT3620_GPT_FIELD_READ(gpt2_ctrl, speed);
}
if (restart) {
error = ERROR_UNSUPPORTED;
}
break;
case MT3620_UNIT_GPT3:
if (enabled) {
*enabled = MT3620_GPT_FIELD_READ(gpt3_ctrl, en);
}
if (mode) {
*mode = handle->mode;
}
if (speed) {
error = ERROR_UNSUPPORTED;
}
if (restart) {
error = ERROR_UNSUPPORTED;
}
break;
case MT3620_UNIT_GPT4:
if (enabled) {
*enabled = MT3620_GPT_FIELD_READ(gpt4_ctrl, en);
}
if (mode) {
*mode = GPT_MODE_NONE;
}
if (speed) {
*speed = MT3620_GPT_FIELD_READ(gpt4_ctrl, speed);
}
if (restart) {
error = ERROR_UNSUPPORTED;
}
break;
default:
error = ERROR_UNSUPPORTED;
break;
}
return error;
}