void setup() { setupSystemClock(); setup_system_tick(SYSTEM_TICK_FREQ); setupUART(); #ifdef GPS setupGPS(); #endif I2C_Init(); FlashInit(); UpdateBoardVersion(false); #ifdef OPTION_RC RC_Init(); if(IsSSVConnected()) Battery_Init(); LED_Init(); TIMER_Init(); stabilizerInit(); #endif #ifdef ABROBOT ABRobotMotorInit(); #endif nvtAHRSInit(); SensorsInit(); ChronographSet(ChronMain); }
void main(void) { // Initialize all tasks Speech_Init(); UART_Init(BAUD9600); Timer0_Init(500); Elecmotor_Init(); Button_Init(); Battery_Init(); Sensor_Init(); Alarm_Init(); Function_init(); Function_S_init(); // Add Tasks hSCH_Add_Task(Elecmotor_update, 1000, 1, 1); // 1ms/ticket hSCH_Add_Task(Button_update, 1500, 200, 1); // 100ms/ticket hSCH_Add_Task(Speech_update, 1500, 1000, 1); // 0.5s/ticket hSCH_Add_Task(Sensor_update, 2000, 1, 1); // 1ms/ticket hSCH_Add_Task(Alarm_update, 3000, 2000, 1); // 1s/ticket hSCH_Add_Task(Function_update, 1500, 4000, 1); // 2s/ticket hSCH_Add_Task(Function_s_update, 2000, 1, 1); // 1ms/ticket // Start the program. hSCH_Start(); while(1) { // Excute the program. hSCH_Dispatch_Tasks(); } }
void api_init(void) { CILCR_LVL = 0; interrupts_init(); // button PIER07_IE0 = 1; PIER07_IE1 = 1; PIER07 |= 0x0c; PUCR07 |= 0x0c; Sema = 0; vSemaphoreCreateBinary(Sema); //Seg_Init(); Drive_Init(); //FRAM_Init(); Us_Init(); //CarId_Init(); ADC_Init(); Battery_Init(); Linesensor_Init(); //wirelessInit(); Serial_Init(); __EI(); }
/******************************************************************************* **函 数: KeyInit **功 能: 初始化 **参 数: unitID --单元号 **返 回: void *******************************************************************************/ void KeyInit(u8 unitID) { u8 i; Battery_Init(); Init_OLED(); _74HC595_Init(); ShowLED_OpenAll(); if(1 == Battery_GetPercent(&gPowerPercent)) { if(gPowerPercent <= 8) //电量小于8%时自动提示用户充电,3s以后休眠 { OLED_ShowPicAt(36,2,56,32,PicPower); Thread_Login(ONCEDELAY, 0,3000,&Standby_Mode); for(;;); } } EEPROM_Read(ADDR_PASSWORD, 4, &gPassword[0]); if((gPassword[0]>6)||(gPassword[1]>6)||(gPassword[2]>6)||(gPassword[3]>6)) { gPassword[0] = 0; gPassword[1] = 0; gPassword[2] = 0; gPassword[3] = 0; } if((gPassword[0]==0)||(gPassword[1]==0)||(gPassword[2]==0)||(gPassword[3]==0)) { gPswFlag = 0; //无密码 } else gPswFlag = 1; //有密码 Thread_Login(FOREVER, 0, 5 , &Key_Handle); //5ms 按键 Thread_Login(FOREVER, 0, 100, &LowPower_CheckTime); //100ms*100 = 10s 睡眠 Thread_Login(FOREVER, 0, 200 ,&Battery_Show); Get_CurrentKeyState(&gKeyPrevState); if((gKeyPrevState.KeyValue > MAX_TOUCH_KEY)||(!gKeyPrevState.KeyValue)) { gKeyPrevState.KeyValue = first_key; } if((gKeyPrevState.KeyType > KEY_LONG)||(KEY_NONE == gKeyPrevState.KeyType)) { gKeyPrevState.KeyType = KEY_SHORT; } gKeyCh[gKeyPrevState.KeyValue].Status = gKeyPrevState.KeyType; for(i = 1;i < MAX_TOUCH_KEY;i++) { if(gKeyPrevState.KeyStatusVal[i] > 1) { gKeyPrevState.KeyStatusVal[i] = SW_OFF; } gKeyStatus[i].Status = gKeyPrevState.KeyStatusVal[i]; } switch(gKeyPrevState.KeyType) { case KEY_SHORT: { if(SW_ON == gKeyStatus[gKeyPrevState.KeyValue].Status) { OLED_ShowHalfPicAt(4,PicTab[gKeyPrevState.KeyValue]); } else { OLED_ShowHalfPicAt(4,PicTab[gKeyPrevState.KeyValue + 32]); } }break; case KEY_LONG: { OLED_ShowHalfPicAt(4,PicTab[gKeyPrevState.KeyValue + 16]); }break; default:break; } Battery_Show_State(); Upload(1); }