void F_LongRestKey(rt_uint8_t keyCode) { switch(keyCode) { case long_stop_rest_KeyVal: IWDG_Config(0); while(1) break; } }
//============================================================================== // Sleep 設定 (EUP) //============================================================================== void F_Sleep_Init(void) { F_AllLCDRam(0); F_Display(); F_1625CS_1(0); F_1625WR(0); F_1625DATA(0); F_BackLight(0); F_IncControlUp(0); F_IncControlDown(0); F_EUP_EEPROM_GPIO(); // EUP //M_ERP_SetHigh; M_ERP_SetLow; EXTI_Config(); F_ERP_KBSet(); /* Request to enter STOP mode with regulator in low power mode */ PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); EXTI_DeInit(); IWDG_Config(0); }
void F_EngineeringMode(void) { rt_uint8_t keyCode = 0; rt_bool_t LongKeyStartFlg = 0; rt_uint32_t e; if (rt_event_recv(&sport_timer_event, 0xFFFF, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, RT_WAITING_FOREVER, &e) == RT_EOK) { if((e & time_20ms_val) == time_20ms_val) { F_ReadKeyCode(&keyCode,&LongKeyStartFlg,&ui_action.SleepTimer); switch(keyCode) { case stop_rest_KeyVal: IWDG_Config(0); while(1) break; case enter_KeyVal: F_ChooseMode(); break; case resistance_up_KeyVal: if(LongKeyStartFlg == 0) { bz_short(); ui_action.Event++; if(ui_action.Event>SeatLiftInstallEventVal) ui_action.Event = UnitEventVal; } break; case resistance_down_KeyVal: if(LongKeyStartFlg == 0) { bz_short(); if(ui_action.Event > UnitEventVal) ui_action.Event--; else ui_action.Event = SeatLiftInstallEventVal; } break; } } //===================== if((e & time_100ms_val) == time_100ms_val) { F_SetDisplayRam(0); switch(ui_action.Event) { case UnitEventVal: F_ShowUnit(); break; case VersionEventVal: F_ShowSoftwareVersion(); break; case BeeperTestEventVal: F_ShowBeeperTest(); break; case DisplayTestEventVal: F_ShowDisplayTest(); break; case KeypadTestEventVal: F_ShowKeypedTest(); break; case SeatLiftInstallEventVal: F_ShowSeatLiftInstall(); break; } F_Display(); } } }
/*主程序*/ void main() { u8 i = 0; /*时钟初始化*/ CLK_Config(); #ifdef _IWDG_ /* Check if the system has resumed from IWDG reset */ if (RST_GetFlagStatus(RST_FLAG_IWDGF) != RESET) { /* Clear IWDGF Flag */ RST_ClearFlag(RST_FLAG_IWDGF); } /* get measured LSI frequency */ LsiFreq = LSIMeasurment(); /* IWDG Configuration */ IWDG_Config(); #endif /*初始化电源控制*/ GPIO_DeInit(GPIOD); GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_FAST); GPIO_DeInit(GPIOC); GPIO_Init(GPIOC,GPIO_PIN_1,GPIO_MODE_OUT_PP_LOW_FAST); #ifdef __DEBUG__ /*底板MCU调试串口配置*/ DBG_Config(); #endif /*按键初始化*/ KEY_Init(); /*串口初始化*/ COMM_Init(); /*遥控器硬件初始化*/ IR_Init(); /*初始化CAN*/ CAN_Initialize(); /*打开全局中断*/ enableInterrupts(); /*上电,3.3V/12V*/ VDD3V3_ON(); VDD12_ON(); while (1) { /*按键检测*/ KEY_Process(); /*红外遥控器处理*/ IR_Process(); /*CAN通信处理*/ CAN_Process(); #ifdef _IWDG_ /*独立看门狗喂狗*/ IWDG_ReloadCounter(); #endif } }