ganz hässliche code zwischen speicher
This commit is contained in:
@ -4,6 +4,8 @@
|
||||
|
||||
TSStateHandle ts_state;
|
||||
IMDData imd_data;
|
||||
uint8_t led_state;
|
||||
TSState request_state = TS_INACTIVE;
|
||||
|
||||
void error_led_init() {
|
||||
HAL_GPIO_WritePin(AMS_ERROR_GPIO_Port, AMS_ERROR_Pin, GPIO_PIN_SET);
|
||||
@ -17,34 +19,38 @@ void sdc_init() {
|
||||
void ts_handle_ams_status(const uint8_t* data) {
|
||||
ts_state.current_state = data[0] & 0b01111111;
|
||||
imd_data.ok = data[6] & 0b10000000;
|
||||
led_state = data[7];
|
||||
|
||||
if (ts_state.current_state != TS_ERROR) {
|
||||
HAL_GPIO_WritePin(AMS_ERROR_GPIO_Port, AMS_ERROR_Pin, GPIO_PIN_RESET);
|
||||
} else {
|
||||
if ((led_state | 0b00000010) == 0b10) {
|
||||
HAL_GPIO_WritePin(AMS_ERROR_GPIO_Port, AMS_ERROR_Pin, GPIO_PIN_SET);
|
||||
} else {
|
||||
HAL_GPIO_WritePin(AMS_ERROR_GPIO_Port, AMS_ERROR_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
|
||||
if (imd_data.ok) {
|
||||
HAL_GPIO_WritePin(IMD_ERROR_GPIO_Port, IMD_ERROR_Pin, GPIO_PIN_RESET);
|
||||
} else {
|
||||
if ((led_state | 0b00000100) == 0b100) {
|
||||
HAL_GPIO_WritePin(IMD_ERROR_GPIO_Port, IMD_ERROR_Pin, GPIO_PIN_SET);
|
||||
} else {
|
||||
HAL_GPIO_WritePin(IMD_ERROR_GPIO_Port, IMD_ERROR_Pin, GPIO_PIN_RESET);
|
||||
}
|
||||
}
|
||||
|
||||
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
||||
{
|
||||
if(GPIO_Pin == TS_ON_Pin) {
|
||||
can_change_ts_state(TS_ACTIVE);
|
||||
} else if (GPIO_Pin == ENC_PUSH_ON_Pin){
|
||||
can_change_ts_state(TS_INACTIVE);
|
||||
HAL_StatusTypeDef change_ts_state(TSState state) {
|
||||
if (state == TS_ACTIVE) {
|
||||
request_state = TS_ACTIVE;
|
||||
|
||||
return HAL_OK;
|
||||
} else if (state == TS_INACTIVE){
|
||||
request_state = TS_INACTIVE;
|
||||
|
||||
return HAL_OK;
|
||||
} else {
|
||||
__NOP();
|
||||
return HAL_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
HAL_StatusTypeDef check_sdc_state() {
|
||||
if (!HAL_GPIO_ReadPin(SDC_ON_GPIO_Port, SDC_ON_Pin)) {
|
||||
TRY(can_change_ts_state(TS_INACTIVE));
|
||||
TRY(change_ts_state(TS_INACTIVE));
|
||||
}
|
||||
|
||||
return HAL_OK;
|
||||
|
||||
Reference in New Issue
Block a user