void SYS_INIT(void) { LED_INIT(); LED_FLASH(); Moto_Init(); LED_FLASH(); Tim3_Init(500); Nvic_Init(); Uart1_Init(115200); ANO_TC_I2C2_INIT(0xA6,400000,1,1,3,3); MPU6050_Init(); Spi1_Init(); Nrf24l01_Init(MODEL_TX2,40); if(Nrf24l01_Check()) Uart1_Put_String("NRF24L01 IS OK !\r\n"); else Uart1_Put_String("NRF24L01 IS NOT OK !\r\n"); ADC1_Init(); FLASH_Unlock(); EE_INIT(); EE_READ_ACC_OFFSET(); EE_READ_GYRO_OFFSET(); EE_READ_PID(); Tim3_Control(1); }
void cm_process(u8 port) { if((infrm[port].addr_to == myaddr) || (infrm[port].addr_to == BROADCAST_ADDR)) { parse_node_frm((u8*)&RS485,port); //modify the content LED_FLASH(LED_D7); } }
void SYS_INIT(void) { LED_INIT(); //LED及串口IO 初始化 LED_FLASH(); //LED闪烁 Tim3_Init(500); //中断初始化 //1000=1MS,500=0.5MS Moto_Init(); //PWM // Uart1_Init(115200); //串口初始化,飞控上几乎无用 Spi1_Init(); //SPI初始化 Nvic_Init(); //中断初始化 Nrf24l01_Init(MODEL_TX2,40); //2401中断初始化 主发送 通道 40 // if(Nrf24l01_Check()) Uart1_Put_String("NRF24L01 IS OK !\r\n"); //检测2401是否初始化成功 // else Uart1_Put_String("NRF24L01 IS NOT OK !\r\n"); InitMPU6050(); ADC1_Init(); //检测电池电压 FLASH_Unlock(); //保存飞飞控参数 EE_INIT(); EE_READ_ACC_OFFSET(); EE_READ_GYRO_OFFSET(); EE_READ_PID(); PID_ROL.P = PID_PIT.P = 5; //用于初始化pid,如用匿名上位机写入pid,则屏蔽 PID_ROL.D = PID_PIT.D = 0.1; PID_YAW.P = 0.5; PID_YAW.D = 0.05; }
void cm_ack(u8 port) { outfrm[port].cksum = checksum((u8*)(&outfrm[port]),6)+checksum( outfrm[port].databuf, outfrm[port].datalen); //print out the first 6 bytes of a frame, head1, ... cmd, data_len prints((u8*)(&outfrm[port]),6,port); //print out data if there is any to be sent out if(outfrm[port].datalen > 0) prints(outfrm[port].databuf, outfrm[port].datalen, port); //print out check_sum byte prints(&outfrm[port].cksum,1,port); // LED to indicate command ack. LED_FLASH(LED_D8); }
/******************************************************************************* * 名称:SysTask_Tick * 功能:Les系统计时 * 形参: * 返回: 无 * 说明: ******************************************************************************/ void //ICACHE_FLASH_ATTR SysTask_Tick(void) { if(mSysTick == 0)return;//系统节拍计时器 mSysTick=0; if(SysTask.m_Hs6200Ok > 200){SysTask.m_Hs6200Ok = 0;SysTask.m_CloudOk = 6;} else if(SysTask.m_Hs6200Ok > 99)SysTask.m_Hs6200Ok++; // if(SysTask.m_CloudOk > 200)SysTask.m_CloudOk = 0; // else if(SysTask.m_CloudOk > 5)SysTask.m_CloudOk++; // LetsNetWork_Tick(); //协议节拍 if(mSysSec >= 1000){ //秒计数 LED_FLASH(); //LED节拍 mSysSec = 0; //秒计数清零 // if(SysTask.m_WifiState > WIFI_SMARTLINK) // UDPs_Tick(); //UDP任务 #ifdef CloudKey if(IsConnect)Cloud_Tick(); //云任务节拍 if(mCloudState.Ackwait > 0)mCloudState.Ackwait--; //服务器应答等待时间 #endif // if(SysTask.eTime)SysTick_DateAndTime(); //定时/时钟任务 if(SysTask.nCtCnt > 0) { SysTask.nCtCnt--; //允许新灯加入时间 //os_printf("允许加入时间 is %d\r\n",SysTask.nCtCnt); } // PowerOffToSmartLink(); // LinkTcpReConnect(); } }