static void setupIO(void) { IO_SetMode(eCHARGE_ON_PORT, CHARGE_ON_PIN, IO_MODE_OUTPUT); IO_SetMode(eBATT_ADC_PORT, BATT_ADC_PIN, IO_MODE_INPUT); IO_SetMode(eCHARGE_STATE_PORT, CHARGE_STATE_PIN, IO_MODE_OUTPUT); IO_Control(eCHARGE_ON_PORT, CHARGE_ON_PIN, IO_OFF); IO_Control(eCHARGE_STATE_PORT, CHARGE_STATE_PIN, IO_OFF); SWS_TxInit(IO_PORTB, 1); SWS_SetBaudRate(LIB_SWS_BAUD_4800); }
void EXTI15_10_IRQHandler(void) { if(EXTI->PR & EXTI_Line14) { EXTI->PR = EXTI_Line14; IO_Control(NULL); alarmFlag |= MICROWAVE_ALARM_FLAG; } }
int main(void) { /* Disable watchdog: not required for this application */ MCUSR &= ~(1 << WDRF); wdt_disable(); setupTimer(); setupIO(); UI_Init(); /* All processing interrupt based from here*/ DO_TEST_HARNESS_SETUP(); sei(); // Update display on first application tick s_settings = Strobe_Init(); s_bSettingsChanged = true; while (true) { DO_TEST_HARNESS_RUNNING(); UI_Tick(); if (TMR8_Tick_TestAndClear(&appTick)) { applicationTick(); DO_TEST_HARNESS_TICK(); } if (TMR8_Tick_TestAndClear(&heartbeatTick)) { IO_Control(IO_PORTB, 5, IO_TOGGLE); } } return 0; }
void EXTI1_IRQHandler(void) { EXTI->PR = EXTI_Line1; IO_Control(NULL); alarmPulseCnt++; if(alarmStatusChange == 0) { alarmStatusChange = 1; alarmStatusHoldStartTime = rtcTimeSec; if(rtcTimeSec - alarmStartTime > 4) alarmChangeCnt = 0; if(alarmChangeCnt == 0) alarmStartTime = rtcTimeSec; alarmChangeCnt++; if(alarmChangeCnt >= 3) { if(rtcTimeSec - alarmStartTime <= 4) alarmFlag |= CAR_ALARM_PRESS_3TIMES_IN_4SEC_FLAG; alarmChangeCnt = 0; } } }
void EXTI9_5_IRQHandler(void) { if(EXTI->PR & EXTI_Line5) { EXTI->PR = EXTI_Line5; IO_Control(NULL); sosStatusChange = 1; sosStatusHoldStartTime = rtcTimeSec; if(rtcTimeSec - sosStartTime > 4) sosChangeCnt = 0; if(sosChangeCnt == 0) sosStartTime = rtcTimeSec; sosChangeCnt++; if(sosChangeCnt >= 3) { if(rtcTimeSec - sosStartTime <= 4) alarmFlag |= SOS_ALARM_FLAG; sosChangeCnt = 0; } } if(EXTI->PR & EXTI_Line6) { EXTI->PR = EXTI_Line6; } if(EXTI->PR & EXTI_Line8) { RingCallProcess(NULL,NULL); EXTI->PR = EXTI_Line8; } if(EXTI->PR & EXTI_Line6) { //GPS_SetPulse(); EXTI->PR = EXTI_Line6; } }
void EXTI0_IRQHandler(void) { EXTI->PR = EXTI_Line0; IO_Control(NULL); alarmFlag |= ACC_ON_OFF_FLAG; }