From f785594a6798e45cb2e73ca914a76618682fb959 Mon Sep 17 00:00:00 2001 From: Zhangwen <13970730+mkc46119@user.noreply.gitee.com> Date: Wed, 9 Apr 2025 10:48:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=201.=E4=BF=AE=E5=A4=8Doid=E5=85=B3?= =?UTF-8?q?=E6=9C=BA=E9=87=8D=E5=90=AF=E5=90=8E=E4=B8=8D=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B2.=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E7=B3=BB=E7=BB=9F=E7=8A=B6=E6=80=81=EF=BC=9A?= =?UTF-8?q?PWR=5FWAIT=5FON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/app/app_config.c | 2 +- source/app/app_config.h | 13 +++++---- source/app/app_eeprom.c | 1 + source/app/main.c | 57 +++++++------------------------------ source/app/task_adc.c | 2 +- source/app/task_appstatus.c | 18 +++++------- source/app/task_game.c | 7 ++++- source/app/task_keystatus.c | 2 +- source/bsp/bsp_WT2605B.c | 26 +++++++++-------- source/bsp/bsp_WT2605B.h | 4 +-- source/bsp/bsp_config.h | 6 ---- source/bsp/bsp_led.h | 4 +-- source/bsp/bsp_oid.c | 1 + source/msp/msp_adc.c | 2 -- 14 files changed, 54 insertions(+), 91 deletions(-) diff --git a/source/app/app_config.c b/source/app/app_config.c index 2c09f10..08334ff 100644 --- a/source/app/app_config.c +++ b/source/app/app_config.c @@ -22,7 +22,7 @@ void L3_param_init(void) G.volume = 0x15; //U8 i; - G.debug = 1; + G.debug = 0; //station模式状态 G.st_status = 0; //0:none 1:wifi_ok 2:tcp_connect_ok //station模式sid diff --git a/source/app/app_config.h b/source/app/app_config.h index 4149a2c..2cf7b03 100644 --- a/source/app/app_config.h +++ b/source/app/app_config.h @@ -42,12 +42,13 @@ typedef struct pen_point typedef enum { POW_OFF = 0, //关机状态 - POW_ON = 1, //开机状态 - WIFI_CONFIG = 2, //WIFI配网模式 - WIFI_CONFIG_Phone = 3, //WIFI配网——手机APP配置连接中 - WIFI_CONFIG_COMPLETE = 4, //WIFI配网成功 - WIFI_CONNECTED = 5, //WIFI连接成功 - TCP_CONNECTED = 6, //TCP连接成功 + POW_ON_WAIT = 1, //等待开机状态 + POW_ON = 2, //开机状态 + WIFI_CONFIG = 3, //WIFI配网模式 + WIFI_CONFIG_Phone = 4, //WIFI配网——手机APP配置连接中 + WIFI_CONFIG_COMPLETE = 5, //WIFI配网成功 + WIFI_CONNECTED = 6, //WIFI连接成功 + TCP_CONNECTED = 7, //TCP连接成功 }APP_STATUS; diff --git a/source/app/app_eeprom.c b/source/app/app_eeprom.c index 271627d..4bb91f2 100644 --- a/source/app/app_eeprom.c +++ b/source/app/app_eeprom.c @@ -6,6 +6,7 @@ void L3_param_read(void) { L0_Iap_Read_array(EEPROM_DATA_ADDR, (U8*)&G,sizeof(G)); + if(G.head[0] != HEAD0 || G.head[1] != HEAD1 || G.tail[0] != TAIL0 || G.tail[1] != TAIL1) { L3_param_init(); diff --git a/source/app/main.c b/source/app/main.c index 34f9e0d..eecb14e 100644 --- a/source/app/main.c +++ b/source/app/main.c @@ -35,10 +35,8 @@ void L0_BSP_init(void) L2_WT2605B_init(); // WIFI初始化 L2_Wifi_init(); - // OID初始化 - L0_Oid_Init(); - - LED2 = 0; + // // OID初始化 + // L0_Oid_Init(); } void L0_TASK_init(void) @@ -61,17 +59,6 @@ void L0_TASK_init(void) //adc任务初始化 L3_task_Adc_init(); - // //游戏任务初始化 - // L3_task_game_init(); - // //寄存器监听任务初始化 - // L3_task_reglisten_init(); - // //笔头任务初始化 - // L1_oid_init(); - // //语音模块初始化 - // L3_task_speech_init(); - // //tcp轮询任务初始化 - // L3_task_tcp_init(); - // L3_task_tcp_control_init(); } //=============================================== //主函数 @@ -90,48 +77,26 @@ void main(void) //获取mcu id L0_id_get_rom(G.mcu_id); L0_uart0_sendstr("MCU_ID = "); - L0_uart0_0d0a(); L0_uart0_sendArrayHex(G.mcu_id,7); L0_uart0_0d0a(); - //打印程序版本信息 - L0_uart0_sendArray("PEN_V2",6); + //版本信息 + L0_uart0_sendstr("Version info : "); + L0_uart0_sendArray("PEN_V3",6); L0_uart0_0d0a(); while(1) { - // OID数据采集 - // L1_Oid_readoid(); 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); + // 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); } - - - // if (ts_oid.ok == 1) - // { - // ts_oid.ok = 0; - // L0_uart0_sendstr("ts_oid.Xint = "); - // L0_uart0_ushex(ts_oid.Xint); - // L0_uart0_0d0a(); - // L0_uart0_sendstr("ts_oid.Yint = "); - // L0_uart0_ushex(ts_oid.Yint); - // L0_uart0_0d0a(); - // L0_uart0_sendstr("ts_oid.Xdec = "); - // L0_uart0_ushex(ts_oid.Xdec); - // L0_uart0_0d0a(); - // L0_uart0_sendstr("ts_oid.Ydec = "); - // L0_uart0_ushex(ts_oid.Ydec); - // L0_uart0_0d0a(); - // L0_uart0_sendstr("oid_p"); - // } - // 系统状态任务 L3_task_appstatus_handler(&_s_task_appstatus); @@ -139,7 +104,7 @@ void main(void) L3_task_keystatus_handler(&_s_task_keystatus); // WIFI任务 - if (R.app_status != POW_OFF) + if (R.app_status >= POW_ON) { // WIFI数据解析 L3_uart2_wifi_parse(); diff --git a/source/app/task_adc.c b/source/app/task_adc.c index 22d22c4..679cf68 100644 --- a/source/app/task_adc.c +++ b/source/app/task_adc.c @@ -77,7 +77,7 @@ void L3_task_Adc_handler(S_TASK_ADC *s) s->LowPower_Count ++; if (s->LowPower_Count > Count_Max) { - L0_uart0_sendstr("s->Aver = "); + L0_uart0_sendstr(" Battery Capacity Low !!!"); s->LowPower_Flag = 1; // 语音提醒 L2_WT2605B_Broadcast(&audio_low_power); diff --git a/source/app/task_appstatus.c b/source/app/task_appstatus.c index 60a9a52..1e2f8cf 100644 --- a/source/app/task_appstatus.c +++ b/source/app/task_appstatus.c @@ -66,23 +66,19 @@ void L3_task_appstatus_handler(S_TASK_APPSTATUS *s) { // LED灯灭 L2_LED_OFF(); - // // 音频播放关机语音后断电 + // 播放关机语音 L2_WT2605B_Broadcast(&audio_powerdown); - // Lc_delay_ms(1000); - // L2_WT2605B_PWROFF(); // OID、WIFI关闭 L2_OID_WIFI_Close(); } - else if (s->status == POW_ON) + else if (s->status == POW_ON_WAIT) { // LED红灯常亮,LED绿灯灭 L2_RED_LED_ON(); - // 音频通电后播放开机语音 - // L2_WT2605B_PWRON(); - // Lc_delay_ms(1000); - L2_WT2605B_Broadcast(&audio_poweron); // OID、WIFI开启 - L2_OID_WIFI_Open(); + L2_OID_WIFI_Open(); + // 通电后播放开机语音 + L2_WT2605B_Broadcast(&audio_poweron); //wifi任务初始化 L3_task_W600_flow_init(W600_ST); // Adc任务初始化 @@ -90,8 +86,8 @@ void L3_task_appstatus_handler(S_TASK_APPSTATUS *s) // game任务初始化 L3_task_game_init(); - L0_Oid_Init(); - L2_WT2605B_init(); + s->status = POW_ON; + R.app_status = POW_ON; } else if (s->status == WIFI_CONFIG) diff --git a/source/app/task_game.c b/source/app/task_game.c index 0bb9738..4fc6d8c 100644 --- a/source/app/task_game.c +++ b/source/app/task_game.c @@ -254,6 +254,7 @@ void L3_task_game_init(void) } #define D_task_READ_OID 0x50 +#define D_task_INIT_OID 0x59 #define D_task_GAME_SWITCH 0x51 #define D_task_GAME_PLAY 0x52 #define D_task_GAME_TIMEOUT 0x53 @@ -266,7 +267,11 @@ void L3_task_game_handler(S_TASK_GAME *s) { TTSS_Task_init() - L2_task_go(D_task_GAME_TIMEOUT); + L2_task_go_Tdelay(D_task_INIT_OID,D_Tdelay_4s); + + TTSS_Task_step(D_task_INIT_OID) + L0_Oid_Init(); + L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms); TTSS_Task_step(D_task_GAME_TIMEOUT) if (s->game_info_index != -1 && (s_nos_tick.t_1s - s->start_seconds > s->game_info[s->game_info_index].game_timeout_seconds)) diff --git a/source/app/task_keystatus.c b/source/app/task_keystatus.c index e7c30e0..40c85e8 100644 --- a/source/app/task_keystatus.c +++ b/source/app/task_keystatus.c @@ -56,7 +56,7 @@ void L3_task_keystatus_handler(S_TASK_KEYSTATUS *s) { if (R.app_status == POW_OFF) { - R.app_status = POW_ON; + R.app_status = POW_ON_WAIT; s->Key3_Down_Begin_Time = 0; s->Key3_handled = 1; } diff --git a/source/bsp/bsp_WT2605B.c b/source/bsp/bsp_WT2605B.c index 8d55ae8..3ca05a1 100644 --- a/source/bsp/bsp_WT2605B.c +++ b/source/bsp/bsp_WT2605B.c @@ -53,26 +53,27 @@ TS_SPEECH_VOLUME volume_control = {0x7E,0x04,0xAE,0x1E,0xD0,0xEF}; //音 void L2_WT2605B_init() { + // 初始化管脚 D_stdIO_P0(BITN0); D_stdIO_P0(BITN1); - // 电源控制引脚 - // D_HighI_P0(BITN5); - // L2_WT2605B_PWRON(); + + // 初始化功放控制引脚P26 + // 0 开启 1 关闭 + D_stdIO_P2(BITN6); + // 初始化音量 L2_WT2605B_VolumeControl(G.volume); - // 功放控制引脚P26 0 开启 1 关闭 - D_HighI_P2(BITN6); - P26 = 0; + L2_WT2605B_ON(); } -void L2_WT2605B_PWRON() +void L2_WT2605B_ON() { - D_P05_ON(); + D_P26_OFF(); } -void L2_WT2605B_PWROFF() +void L2_WT2605B_OFF() { - D_P05_OFF(); + D_P26_ON(); } void L2_WT2605B_Broadcast(TS_SPEECH_AUDIO *music) @@ -96,8 +97,7 @@ void L2_WT2605B_Broadcast_TPC(U8* GameID) } } - - +// 音量控制 void L2_WT2605B_VolumeControl(U8 grade) { volume_control.grade = grade; @@ -105,6 +105,7 @@ void L2_WT2605B_VolumeControl(U8 grade) L0_uart3_sendArray((U8 *)&volume_control,6); } // 音量设置6个档位:0x15,0x17,0x19,0x1B,0x1D,0x1F +// 音量增大 void L2_WT2605B_VioceUp(void) { if (volume_control.grade >= 0x15 && volume_control.grade < 0x1F) @@ -123,6 +124,7 @@ void L2_WT2605B_VioceUp(void) L2_WT2605B_Broadcast(&audio_volume_up); } +// 音量减小 void L2_WT2605B_VioceDown(void) { if (volume_control.grade > 0x15 && volume_control.grade <= 0x1F) diff --git a/source/bsp/bsp_WT2605B.h b/source/bsp/bsp_WT2605B.h index 98f6307..b36c62a 100644 --- a/source/bsp/bsp_WT2605B.h +++ b/source/bsp/bsp_WT2605B.h @@ -71,8 +71,8 @@ extern TS_SPEECH_AUDIO audio_low_power; extern TS_SPEECH_VOLUME volume_control; extern void L2_WT2605B_init(); -extern void L2_WT2605B_PWRON(); -extern void L2_WT2605B_PWROFF(); +extern void L2_WT2605B_ON(); +extern void L2_WT2605B_OFF(); extern void L2_WT2605B_Broadcast(TS_SPEECH_AUDIO *music); extern void L2_WT2605B_Broadcast_TPC(U8* GameID); extern void L2_WT2605B_VolumeControl(U8 grade); diff --git a/source/bsp/bsp_config.h b/source/bsp/bsp_config.h index 8974d51..21a3d22 100644 --- a/source/bsp/bsp_config.h +++ b/source/bsp/bsp_config.h @@ -157,12 +157,6 @@ #define D_MODBUS_ENABLE //MODBS启用开关,如果不使用modbus,可以注释掉本行 #define D_MODBUS_SPLIT_ENTRY L1_modbus_split //modbus切割函数,在tpc_modbus.c中实现,依据实际情况修改 #define D_MODBUS_REG_MAX_NUM 32 //每次最多读取/写入的寄存器数量,此处的数量要注意和 D_tp_handle_x_len 对应 - - //外设定义 - #define LED1 P27 //D4 - #define LED2 P55 //D4 - #define LED3 P02 //D4 - //#define LED4 P26 //D4 //笔头 #define SCK P34 diff --git a/source/bsp/bsp_led.h b/source/bsp/bsp_led.h index 2b67abc..71705e6 100644 --- a/source/bsp/bsp_led.h +++ b/source/bsp/bsp_led.h @@ -4,8 +4,8 @@ #include "bsp_config.h" -#define RED_LED P12 //双色红灯 -#define GREEN_LED P47 //双色绿灯 +#define GREEN_LED P12 //双色红灯 +#define RED_LED P47 //双色绿灯 #define LED_ON 0 #define LED_OFF 1 diff --git a/source/bsp/bsp_oid.c b/source/bsp/bsp_oid.c index 29e659e..6b6fec9 100644 --- a/source/bsp/bsp_oid.c +++ b/source/bsp/bsp_oid.c @@ -497,6 +497,7 @@ void L1_Oid_readoid(void) void L1_Oid_Rec_PRINT(void) { // d[7] + L0_uart0_0d0a(); L0_uart0_sendstr("ts_oid.rec.d[0] = "); L0_uart0_uchex(ts_oid.rec.d[0]); L0_uart0_0d0a(); diff --git a/source/msp/msp_adc.c b/source/msp/msp_adc.c index 5f90dc3..eb8f8e4 100644 --- a/source/msp/msp_adc.c +++ b/source/msp/msp_adc.c @@ -21,8 +21,6 @@ void L0_ADC_init(void) Lc_delay_ms(1); //给MCU的内部ADC模块电源打开后,需等待约1ms,等MCU内部的ADC电源稳定后再让ADC工作 D_ADC_CH(D_ADC_CH_12); //选择ADC12(P04) D_ADC_START(); - - L0_uart0_sendstr("\r\n L0_ADC_init on"); }