/*! * @brief Initialisation thread. runs once. */ void InitThread(void *data) { for (;;) { OS_SemaphoreWait(InitSemaphore, 0); Random_Init(); //Switches mate Switch_Init(S1Callback, (void *) 0, S2Callback, (void *) 0); Toggle_Init(ToggleModeFinished); Game_Init(GameModeFinished); Touch_Init(); //Initialize all the modules LEDs_Init(); I2C_Init(100000, MODULE_CLOCK); Accel_Init(&AccelSetup); PIT_Init(MODULE_CLOCK, &PitCallback, (void *) 0); PIT_Set(500000000, bFALSE); PIT_Enable(bTRUE); Packet_Init(BAUD_RATE, MODULE_CLOCK); Flash_Init(); CMD_Init(); //Best to do this one last //TODO: disabled for yellow RTC_Init((void (*)(void*))OS_SemaphoreSignal, (void *) RtcSemaphore); Timer_Init(); Timer_Set(&PacketTimer); Timer_Set(&AccTimer); CMD_SpecialGetStartupValues(); LEDs_On(LED_ORANGE); } }
//===================================================================================================================== int main (void) { BYTE* pReadBuffer; BYTE* pWriteBuffer; DWORD Version; PINSEL0 = 0; PINSEL1 = 0; Init_IO(); CLK_Init(); CLK_SetupTimer(cCLK_TimerBlink, 500, Main_BlinkLED); CMD_Init((DWORD*)&pWriteBuffer, (DWORD*)&pReadBuffer); IOCLR = cPB_LED1 + cPB_LED2 + cPB_LED3; while(1) { IOCLR = cPB_LED1; if (!CMD_GetVersion((WORD*)(&Version))) { continue; } if (!(CMD_Detect())) { continue; } IOSET = cPB_LED1; //等待But0按下,则开始写数据 if (IOPIN & cPB_BUT0) { continue; } DoTest2(pReadBuffer, pWriteBuffer); } }