void WaitGPS() { while(TRUE) { uint8 t=0; LED2OFF(); INS(); t=INSFrameObj.Status&0x01; if(t==0x01) { break; } DelayMs(3,100); LED2ON(); DelayMs(3,100); } //LED2OFF(); }
int main(void) { sbi(DDRC,6); sbi(DDRC,7); sbi(PORTD,6); sei(); LED1ON(); while(1) { if(SWITCH1ON()) LED2ON(); else LED2OFF(); _delay_ms(5); } }
int main (void) { //Test //Test(); //Init InitDevice(); //Send Startup Message FCMessageSend("vFlyOK"); //等待INS的GPS完成启动 //WaitGPS(); //改变运行状态并发送状态信息 RunState=DefaultRunState; FCEventSend(RunState); //初始化参数 InitPara(); FCMessageSend("InitParaOK"); //启动主计时器 TimerEnable(0); while(1) { if(Do==DoWorkLoop) { LED2ON(); INS(); SwitchMode(); if(FPGAState==TRUE) { GetPWM(); } //FCA(); //FCALimitPWM(void); FCAGetNav(); FCAPWMOut(); SmoothPWM(40); SetPWM(); //CollectMedianDataFun(40); FCACollectPosYaw(5); FCACollectMedianDataFun(40); FCFrameProcess(); if(MainLoopRunCounter%DataSendDF==0) { DataReturn(0); } if(MainLoopRunCounter%DataRecDF==DataRecDF/2) { DataReturn(1); } MainLoopRunCounter++; LED2OFF(); Do=DoNothing; } if(Do==DoFactoryLoop) { LED1ON(); GpioClrLOW(P1_25);//一律切换到手驾 INS(); FCFrameProcess(); if(DataToDownload==0) { if(MainLoopRunCounter%DataSendDF==0) { DataReturn(0); } /* if(MainLoopRunCounter%DataRecDF==DataRecDF/2) { DataReturn(1); } */ } else { DataDownload(); } MainLoopRunCounter++; LED1OFF(); Do=DoNothing; } } return 0; }