#include "main.h" void L0_MCU_init(void) { Lc_delay_ms(200); //板卡初始化 L0_board_config(); //串口0初始化 L0_uart0_buf_init(); //串口2初始化 L0_uart2_buf_init(); //串口3初始化 L0_uart3_buf_init(); //Lc_delay_ms(100); L1_tick_init(); //开启全局中断 EA = 1; // 定时器初始化 L0_timer0_Init(); //G初始化 L3_param_init(); //R初始化 L3_reg_init(); // ADC初始化 L0_ADC_init(); } void L0_BSP_init(void) { // 按键初始化 L2_key_init(); // LED初始化 L2_led_init(); // 语音模块初始化 L2_WT2605B_init(); // WIFI初始化 L2_Wifi_init(); // // OID初始化 // L0_Oid_Init(); } void L0_TASK_init(void) { //系统状态任务初始化 L3_task_AppStatus_init(); // 系统状态测试任务初始化 // L3_task_AppTest_init(); // 按键状态任务初始化 L3_task_KeyStatus_init(); //WIFI任务初始化 L3_task_W600_flow_init(W600_ST); //游戏任务初始化 L3_task_game_init(); //adc任务初始化 L3_task_Adc_init(); } //=============================================== //主函数 //=============================================== void main(void) { //板U初始化 L0_MCU_init(); //eeprom参数读取 L3_param_read(); //BSP层初始化 L0_BSP_init(); //任务初始化 L0_TASK_init(); //获取mcu id L0_id_get_rom(G.mcu_id); L0_uart0_sendstr("MCU_ID = "); L0_uart0_sendArrayHex(G.mcu_id,7); L0_uart0_0d0a(); //版本信息 L0_uart0_sendstr("Version info : "); L0_uart0_sendArray("PEN_V3",6); L0_uart0_0d0a(); while(1) { if(1 == s_nos_tick.t1s_heartbeat)//1s { s_nos_tick.t1s_heartbeat = 0;//置0清空 L0_uart0_uc('.'); // L0_uart0_sendstr("ADC = "); // L0_uart0_ushex(_s_task_adc.adc_val[_s_task_adc.index]); // L0_uart0_0d0a(); // L0_uart0_sendstr("Vin = "); // L0_uart0_ushex(G.Vin); // L2_WT2605B_Broadcast(&audio_tcp_noplan); } // 系统状态任务 L3_task_appstatus_handler(&_s_task_appstatus); // 按键状态任务 L3_task_keystatus_handler(&_s_task_keystatus); // WIFI任务 if (R.app_status >= POW_ON) { Power_Off_judge(); // WIFI数据解析 L3_uart2_wifi_parse(); L2_task_W600_flow_handle(&_s_task_w600_para); // 游戏任务 L3_task_game_handler(&_s_task_game); // adc任务 L3_task_Adc_handler(&_s_task_adc); } // 系统状态测试任务 // L3_task_AppTest_handler(&_s_task_apptest); #if 0 if(s_uart0_rec.ok) { //// buf 0 1 2 3 4 5 6 7 //// FA 0D 36 20 10 55 05 06 s_uart0_rec.ok = 0; L1_uart0_uchexArray(s_uart0_rec.buf,s_uart0_rec.num); switch(s_uart0_rec.buf[1]) { case 0x0d: // L1_sd_debug(&s_uart0_rec.buf[2]); break; case 0x00: L1_oid_debug(&s_uart0_rec.buf[2]); break; default: break; } } #endif //笔头数据采集 // L3_task_oid_handle(&ts_task_oid); //寄存器值监控 // L3_task_reglisten_handle(&s_task_reglisten); //输出,响应485协议 //L3_task_modbus_handler(&s_uart0_rec); //语音模块 // L3_task_speech_handle(&ts_speech); // L3_task_key_handle(&s_task_key_handle); //L3_task_modbus_handler2(&s_uart2_rec); #if 1 //tcp发送 // L3_task_tcp_handle(&ts_tcp); //tcp master->slaver发送逻辑控制 // L3_task_tcp_control_handle(&ts_tcp_control); #endif } } // L0_uart0_sendstr("_s_w600_mode ="); // L0_uart0_uchex(_s_task_w600_para.mode); // L0_uart0_0d0a(); // L0_uart0_sendstr("R.app_status ="); // L0_uart0_uchex(R.app_status); // 上电读出寄存器中的值,放到数组中 // L0_Iap_Read_array(EEPROM_DATA_ADDR, data_save_arr,sizeof(data_save_arr)); // if(data_save_arr[0].head[0] != HEAD0 || data_save_arr[0].head[1] != HEAD1 // || data_save_arr[0].tail[0] != TAIL0 || data_save_arr[0].tail[1] != TAIL1) // { // data_save_init(); // }