Browse Source

fix: appstatus task

issu01
Zhangwen 4 months ago
parent
commit
146c6d8b3f
  1. 8
      .vscode/settings.json
  2. 5
      source/app/app_config.c
  3. 13
      source/app/app_config.h
  4. 14
      source/app/app_task_speech.c
  5. 22
      source/app/app_task_speech.h
  6. 149
      source/app/main.c
  7. 8
      source/app/main.h
  8. 111
      source/app/task_appstatus.c
  9. 31
      source/app/task_appstatus.h
  10. 2
      source/app/task_btn.c
  11. 2
      source/app/task_key.c
  12. 65
      source/bsp/bsp_WT2605B.c
  13. 50
      source/bsp/bsp_WT2605B.h
  14. 12
      source/bsp/bsp_config.c
  15. 13
      source/bsp/bsp_config.h
  16. 9
      source/bsp/bsp_key.c
  17. 15
      source/bsp/bsp_key.h
  18. 16
      source/bsp/bsp_led.c
  19. 15
      source/bsp/bsp_led.h
  20. 2
      source/ctask/time.c

8
.vscode/settings.json

@ -31,6 +31,12 @@
"app_data_save.h": "c",
"task_modbus.h": "c",
"app_task_tcp.h": "c",
"msp_eeprom.h": "c"
"msp_eeprom.h": "c",
"bsp_oid.h": "c",
"bsp_led.h": "c",
"bsp_wt2605.h": "c",
"bsp_key.h": "c",
"task_appstatus.h": "c",
"bsp_wt2605b.h": "c"
}
}

5
source/app/app_config.c

@ -103,6 +103,7 @@ void L3_reg_reset(void)
{
U8 i = 0;
R.app_status = POW_OFF;
R.pen_sta = 0;
@ -117,6 +118,8 @@ void L3_reg_reset(void)
R.game.type = 0;
R.game.dat = 0;
for(i=0;i<CCMD_SLAVER_INFO_MAX;i++)
{
G.ccmd_slaver_info[i].mask = 0;
@ -149,6 +152,8 @@ void L3_reg_reset(void)
G.datapkg = 0;
G.pen_t = 1;
}

13
source/app/app_config.h

@ -31,6 +31,17 @@ typedef struct pen_point
U32 time;//时间
U16 angle;//角度
}PenPoint;
typedef enum
{
POW_OFF = 0, //开机状态
POW_ON = 1, //关机状态
WIFI_CONNECTED = 2, //WIFI连接成功
TCP_CONNECTED = 3, //TCP连接成
WIFI_CONFIG = 9, //WIFI配置连接中
}APP_STATUS;
typedef struct global_register
{
//RO Register
@ -62,7 +73,7 @@ typedef struct global_register
U8 dat;
}game;
APP_STATUS app_status;
}GlobalRegister;

14
source/app/app_task_speech.c

@ -12,20 +12,6 @@
TS_TASK_SPEECH ts_speech;
TS_SPEECH_AUDIO audio_wellcome = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x31,0x8F,0xEF};
TS_SPEECH_AUDIO audio_up = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x32,0x90,0xEF};
TS_SPEECH_AUDIO audio_down = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x33,0x91,0xEF};
TS_SPEECH_AUDIO audio_zmg = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x34,0x92,0xEF};
TS_SPEECH_AUDIO audio_zbt = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x35,0x93,0xEF};
TS_SPEECH_AUDIO audio_SchulteGrid = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x36,0x94,0xEF};
TS_SPEECH_AUDIO audio_select = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x37,0x95,0xEF};
TS_SPEECH_AUDIO audio_begin = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x38,0x96,0xEF};
TS_SPEECH_AUDIO audio_tip = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x39,0x97,0xEF};
TS_SPEECH_AUDIO audio_powerdown = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3A,0x98,0xEF};
TS_SPEECH_AUDIO audio_zmg_again = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3B,0x99,0xEF};
TS_SPEECH_AUDIO audio_zmg_success = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3C,0x9A,0xEF};
void L3_task_speech_init(void)

22
source/app/app_task_speech.h

@ -13,15 +13,7 @@ enum SPEECH_OPER
SPEECH_NAME_PLAY = 0xA3,
};
typedef struct
{
vU8 start;
vU8 num;
vU8 cmd;
vU8 file[4];
vU8 crc;
vU8 end;
}TS_SPEECH_AUDIO;
typedef struct
{
@ -57,19 +49,7 @@ typedef struct
extern TS_TASK_SPEECH ts_speech;
extern TS_SPEECH_AUDIO audio_wellcome;
extern TS_SPEECH_AUDIO audio_up;
extern TS_SPEECH_AUDIO audio_down;
extern TS_SPEECH_AUDIO audio_zmg;
extern TS_SPEECH_AUDIO audio_zbt;
extern TS_SPEECH_AUDIO audio_SchulteGrid;
extern TS_SPEECH_AUDIO audio_select;
extern TS_SPEECH_AUDIO audio_begin;
extern TS_SPEECH_AUDIO audio_tip;
extern TS_SPEECH_AUDIO audio_powerdown;
extern TS_SPEECH_AUDIO audio_zmg_again;
extern TS_SPEECH_AUDIO audio_zmg_success;
extern void L3_task_speech_init(void);
extern void L3_task_speech_handle(TS_TASK_SPEECH *s);

149
source/app/main.c

@ -1,8 +1,7 @@
#include "main.h"
void L0_main_init(void)
void L0_MCU_init(void)
{
Lc_delay_ms(200);
//板卡初始化
L0_board_config();
@ -14,49 +13,48 @@ void L0_main_init(void)
L0_uart3_buf_init();
//Lc_delay_ms(100);
L1_tick_init();
// P53口初始化 推挽输出
L0_PW_3V3_INIT();
// 控制3v3输出(OID,WIFI)
L0_PW_3V3_ON();
//开启全局中断
EA = 1;
#if 0
L1_oid_init();
printf(" ok\r\n");
while(9)
{L1_Oid_readoid();}
#endif
//系统时钟初始化
// L1_tick_init();
// 定时器初始化
L0_timer0_Init();
//G初始化
L3_param_init();
//R初始化
L3_reg_init();
//485初始化
L2_485_init();
}
void L0_BSP_init(void)
{
// 按键初始化
L2_key_init();
// LED初始化
L2_led_init();
// 语音模块初始化
L2_WT2605B_init();
//游戏任务初始化
L3_task_game_init();
//寄存器监听任务初始化
//L3_task_reglisten_init();
// P53口初始化 推挽输出
L0_PW_3V3_INIT();
// 控制3v3输出(OID,WIFI)
L0_PW_3V3_ON();
}
void L0_TASK_init(void)
{
//系统状态任务初始化
L3_task_AppStatus_init();
//w600任务初始化
L3_task_gm35_flow_init(W600_ST);
//按键任务初始化
// L0_key_init();
//笔头任务初始化
L1_oid_init();
//语音模块初始化
L3_task_speech_init();
//tcp轮询任务初始化
L3_task_tcp_init();
L3_task_tcp_control_init();
// //游戏任务初始化
// L3_task_game_init();
// //寄存器监听任务初始化
// L3_task_reglisten_init();
// //w600任务初始化
// L3_task_gm35_flow_init(W600_ST);
// //笔头任务初始化
// L1_oid_init();
// //语音模块初始化
// L3_task_speech_init();
// //tcp轮询任务初始化
// L3_task_tcp_init();
// L3_task_tcp_control_init();
}
//===============================================
@ -64,12 +62,17 @@ void L0_main_init(void)
//===============================================
void main(void)
{
int i;
u8 voice_30[6] = {0x7E,0x04,0xAE,0x1E,0xD0,0xEF};
u8 voice_13[6] = {0x7E,0x04,0xAE,0x0D,0xBF,0xEF};
// int i;
// u8 voice_30[6] = {0x7E,0x04,0xAE,0x1E,0xD0,0xEF};
// u8 voice_13[6] = {0x7E,0x04,0xAE,0x0D,0xBF,0xEF};
//板U初始化
L0_MCU_init();
//BSP层初始化
L0_BSP_init();
//任务初始化
L0_TASK_init();
//初始化
L0_main_init();
//获取mcu id
L0_id_get_rom(G.mcu_id);
L0_uart0_sendstr("MCU_ID = ");
@ -77,49 +80,54 @@ void main(void)
L0_uart0_sendArrayHex(G.mcu_id,7);
L0_uart0_0d0a();
//打印程序版本信息
L0_uart0_sendArray("v1.0",4);
L0_uart0_sendArray("PEN_V2",6);
L0_uart0_0d0a();
Lc_delay_ms(3000);
L0_uart3_sendArray((U8 *)&voice_30,6);
Lc_delay_ms(1000);
L0_uart3_sendArray((U8 *)&audio_up,9);
//Lc_delay_ms(3000);
//L0_uart3_sendArray((U8 *)&voice_30,6);
//Lc_delay_ms(1000);
//L0_uart3_sendArray((U8 *)&audio_up,9);
// 上电读出寄存器中的值,放到数组中
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();
}
// 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();
// }
while(1)
{
L1_Oid_readoid();
// L1_Oid_readoid();
if(1 == s_nos_tick.t1s_heartbeat)//1s
{
s_nos_tick.t1s_heartbeat = 0;//置0清空
D_print_heartbeat()
L0_uart0_uc('.');
L0_uart0_sendstr("eeprom test :");
L0_uart0_0d0a();
for (i = 0; i < DATA_SAVE_LEN; i++)
{
L0_uart0_uchex(i);
L0_uart0_uc('=');
L0_uart0_uchex(data_save_arr[i].val);
L0_uart0_0d0a();
}
// D_print_heartbeat()
// L0_uart0_uc('.');
// L0_uart0_sendstr("eeprom test :");
// L0_uart0_0d0a();
// for (i = 0; i < DATA_SAVE_LEN; i++)
// {
// L0_uart0_uchex(i);
// L0_uart0_uc('=');
// L0_uart0_uchex(data_save_arr[i].val);
// L0_uart0_0d0a();
// }
// L0_uart0_sendArrayHex(data_save_arr, 30);
L0_uart0_uc('.');
}
// 串口2的 接收数据 测试
if(ts_uart[uNum2].r.ok == 1)
{
ts_uart[uNum2].r.ok = 0;
L0_uart0_sendArray(ts_uart[uNum2].r.buf, D_recv2_max);
}
L3_task_appstatus_handler(&_s_task_appstatus);
// // 串口2的 接收数据 测试
// if(ts_uart[uNum2].r.ok == 1)
// {
// ts_uart[uNum2].r.ok = 0;
// L0_uart0_sendArray(ts_uart[uNum2].r.buf, D_recv2_max);
// }
#if 0
// 串口3的 接收数据 测试
if(ts_uart[uNum3].r.ok == 1)
@ -165,7 +173,7 @@ void main(void)
// 7E 04 AE 1E XX EF
#endif
// 游戏处理
L3_task_game_handler(&_s_task_game);
// L3_task_game_handler(&_s_task_game);
//笔头数据采集
// L3_task_oid_handle(&ts_task_oid);
@ -186,7 +194,8 @@ void main(void)
//按键处理
L3_task_btn_handler();
// L3_task_btn_handler();
// L3_task_key_handle(&s_task_key_handle);
//L3_task_modbus_handler2(&s_uart2_rec);
#if 1

8
source/app/main.h

@ -66,9 +66,15 @@
#include "../app/app_task_tcp_control.h"
#include "../app/app_task_speech.h"
#include "../app/task_game.h"
#include "../app/L3_task_btn_handler.h"
#include "../app/app_data_save.h"
#include "task_appstatus.h"
#include "task_appstatus.h"
#include "../bsp/bsp_led.h"
#include "../bsp/bsp_key.h"
#include "../bsp/bsp_WT2605B.h"
#include "../asp/asp_oid.h"
#include "../ctask/tick.h"

111
source/app/task_appstatus.c

@ -0,0 +1,111 @@
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file bsp_drv.c
/// @brief bsp @ driver config
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20180331
/// @note cc_AS_stc02
//////////////////////////////////////////////////////////////////////////////
#include "task_appstatus.h"
#include "../bsp/bsp_led.h"
#include "../bsp/bsp_key.h"
#include "../bsp/bsp_WT2605B.h"
#include "../app/app_config.h"
#include "../bsp/bsp_config.h"
S_TASK_APPSTATUS _s_task_appstatus;
void L3_task_AppStatus_init(void)
{
L1_task_init(&_s_task_appstatus.task);
_s_task_appstatus.status = R.app_status;
L3_task_s_go(_s_task_appstatus,D_task_init);
}
#define D_task_DETECTCHANGE 0x50
#define D_task_HANDLECHANGE 0x51
void L3_task_appstatus_handler(S_TASK_APPSTATUS *s)
{
TTSS_Task_init()
L2_task_go(D_task_DETECTCHANGE);
TTSS_Task_step(D_task_DETECTCHANGE)
if(s->status != R.app_status)
{
s->status = R.app_status;
L2_task_go_Tdelay(D_task_HANDLECHANGE,D_Tdelay_300ms);
}
TTSS_Task_step(D_task_HANDLECHANGE)
if(s->status == POW_OFF)
{
// LED灯灭
RED_LED = LED_OFF;
GREEN_LED = LED_OFF;
// 音频播放关机语音后断电
L2_WT2605B_broadcast(&audio_powerdown);
Lc_delay_ms(1000);
L2_WT2605B_PWROFF();
// OID和WIFI断电
L0_PW_3V3_OFF();
}
else if (s->status == POW_ON)
{
// LED红灯常亮,LED绿灯灭
RED_LED = LED_ON;
GREEN_LED = LED_OFF;
// 音频通电后播放开机语音
L2_WT2605B_PWRON();
Lc_delay_ms(1000);
L2_WT2605B_broadcast(&audio_wellcome);
// OID和WIFI通电
L0_PW_3V3_ON();
}
else if (s->status == WIFI_CONNECTED)
{
// LED红绿交替闪烁
RED_LED = ~RED_LED;
GREEN_LED = ~GREEN_LED;
// 音频播放
L2_WT2605B_PWRON();
Lc_delay_ms(1000);
// L2_WT2605B_broadcast(audio_Wifi_Connected);
// OID和WIFI通电
L0_PW_3V3_ON();
}
else if (s->status == TCP_CONNECTED)
{
// LED红灯灭,LED绿灯常亮
RED_LED = LED_OFF;
GREEN_LED = LED_ON;
// 音频播放
L2_WT2605B_PWRON();
Lc_delay_ms(1000);
// L2_WT2605B_broadcast(audio_TCP_Connected);
// OID和WIFI通电
L0_PW_3V3_ON();
}
else if (s->status == WIFI_CONFIG)
{
// LED红灯闪烁,LED绿灯灭
RED_LED = ~RED_LED;
GREEN_LED = LED_OFF;
// 音频播放
L2_WT2605B_PWRON();
Lc_delay_ms(1000);
// L2_WT2605B_broadcast(&audio_Wifi_Config);
// OID和WIFI通电
L0_PW_3V3_ON();
}
L2_task_go_Tdelay(D_task_DETECTCHANGE,D_Tdelay_300ms);
TTSS_Task_end();
}

31
source/app/task_appstatus.h

@ -0,0 +1,31 @@
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file bsp_drv.h
/// @brief bsp @ driver config
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20180331
/// @note cc_AS_stc02
//////////////////////////////////////////////////////////////////////////////
#ifndef _APPSTATUS_TASK_APPSTATUS_H
#define _APPSTATUS_TASK_APPSTATUS_H
#include "../ctask/task.h"
#include "../clib/clib.h"
#include "app_config.h"
typedef struct _s_task_appstatus
{
TS_task task;
APP_STATUS status;
}S_TASK_APPSTATUS;
extern S_TASK_APPSTATUS _s_task_appstatus;
extern void L3_task_AppStatus_init(void);
extern void L3_task_appstatus_handler(S_TASK_APPSTATUS *s);
#endif // #ifndef

2
source/app/task_btn.c

@ -31,7 +31,7 @@ void L3_task_btn_handler(void)
}
break;
case KEY_DOWN:
LED2 = ~LED2;
RED_LED = ~RED_LED;
L0_uart0_uchex(g_Key);
L0_uart0_0d0a();
g_Key = KEY_NULL;

2
source/app/task_key.c

@ -14,6 +14,8 @@
#include "../msp/uart3.h"
#include "../msp/uart0.h"
#include "app_task_speech.h"
#include "../bsp/bsp_key.h"
#include "../bsp/bsp_WT2605B.h"
struct _s_task_key_ s_task_key_handle;

65
source/bsp/bsp_WT2605B.c

@ -0,0 +1,65 @@
#include "bsp_WT2605B.h"
#include "../msp/UART3.h"
TS_SPEECH_AUDIO audio_wellcome = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x31,0x8F,0xEF};
TS_SPEECH_AUDIO audio_up = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x32,0x90,0xEF};
TS_SPEECH_AUDIO audio_down = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x33,0x91,0xEF};
TS_SPEECH_AUDIO audio_zmg = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x34,0x92,0xEF};
TS_SPEECH_AUDIO audio_zbt = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x35,0x93,0xEF};
TS_SPEECH_AUDIO audio_SchulteGrid = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x36,0x94,0xEF};
TS_SPEECH_AUDIO audio_select = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x37,0x95,0xEF};
TS_SPEECH_AUDIO audio_begin = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x38,0x96,0xEF};
TS_SPEECH_AUDIO audio_tip = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x39,0x97,0xEF};
TS_SPEECH_AUDIO audio_powerdown = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3A,0x98,0xEF};
TS_SPEECH_AUDIO audio_zmg_again = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3B,0x99,0xEF};
TS_SPEECH_AUDIO audio_zmg_success = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3C,0x9A,0xEF};
TS_SPEECH_VOLUME volume_control = {0x7E,0x04,0xAE,0x1E,0xD0,0xEF};
void L2_WT2605B_init()
{
D_stdIO_P0(BITN0);
D_stdIO_P0(BITN1);
// 模块电源控制
D_stdIO_P0(BITN5);
}
void L2_WT2605B_PWRON()
{
D_P05_OFF();
}
void L2_WT2605B_PWROFF()
{
D_P05_ON();
}
void L2_WT2605B_Broadcast(TS_SPEECH_AUDIO *music)
{
L0_uart3_sendArray((U8 *)&music,9);
}
void L2_WT2605B_VioceUp(void)
{
if (volume_control.grade <= 0x1E)
{
volume_control.grade = volume_control.grade + 1;
}
volume_control.crc = 0xab;
L0_uart3_sendArray((U8 *)&volume_control,6);
}
void L2_WT2605B_VioceDown(void)
{
if (volume_control.grade >= 0x01)
{
volume_control.grade = volume_control.grade - 1;
}
volume_control.crc == 0xab;
L0_uart3_sendArray((U8 *)&volume_control,6);
}

50
source/bsp/bsp_WT2605B.h

@ -0,0 +1,50 @@
#ifndef BSP_WT2605B_H
#define BSP_WT2605B_H
#include "bsp_config.h"
// 播放指定音频
typedef struct
{
vU8 start;
vU8 num;
vU8 cmd;
vU8 file[4];
vU8 crc;
vU8 end;
}TS_SPEECH_AUDIO;
// 音量控制
typedef struct
{
vU8 start;
vU8 num;
vU8 cmd;
vU8 grade;
vU8 crc;
vU8 end;
}TS_SPEECH_VOLUME;
extern TS_SPEECH_AUDIO audio_wellcome;
extern TS_SPEECH_AUDIO audio_up;
extern TS_SPEECH_AUDIO audio_down;
extern TS_SPEECH_AUDIO audio_zmg;
extern TS_SPEECH_AUDIO audio_zbt;
extern TS_SPEECH_AUDIO audio_SchulteGrid;
extern TS_SPEECH_AUDIO audio_select;
extern TS_SPEECH_AUDIO audio_begin;
extern TS_SPEECH_AUDIO audio_tip;
extern TS_SPEECH_AUDIO audio_powerdown;
extern TS_SPEECH_AUDIO audio_zmg_again;
extern TS_SPEECH_AUDIO audio_zmg_success;
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_broadcast(TS_SPEECH_AUDIO *music);
extern void L2_WT2605B_VioceUp();
extern void L2_WT2605B_VioceDown();
#endif

12
source/bsp/bsp_config.c

@ -66,16 +66,10 @@ void L0_board_config(void)
D_stdIO_P1(BITN0);
D_stdIO_P1(BITN1);
D_stdIO_P1(BITN2);
//D_OpenD_P0(BITN0);
//D_OpenD_P0(BITN1);
D_stdIO_P0(BITN0);
D_stdIO_P0(BITN1);
D_stdIO_P1(BITN6);
// D_stdIO_P3(BITN2);
D_HighR_P3(BITN2);
D_HighR_P3(BITN3);
D_stdIO_P3(BITN4);
D_stdIO_P3(BITN5);
@ -83,11 +77,7 @@ void L0_board_config(void)
D_stdIO_P3(BITN7);
D_stdIO_P2(BITN7);
D_stdIO_P2(BITN6);
//D_HighI_P5(BITN5);
D_stdIO_P0(BITN2);
D_OpenD_P5(BITN5);
D_HighR_P4(BITN0);
D_HighI_P3(BITN4);
D_HighI_P5(BITN0);

13
source/bsp/bsp_config.h

@ -160,9 +160,13 @@
//外设定义
#define LED1 P27 //D4
#define LED2 P26 //D4
//#define LED2 P55 //D4
#define LED3 P02 //D4
#define LED4 P55 //D4
//#define LED4 P26 //D4
//笔头
#define SCK P34
@ -174,11 +178,6 @@
#define L0_PW_3V3_OFF() D_P53_ON()
//按键
#define key1 P32 //音量增大
#define key2 P33 //音量减小
#define key3 P40 //开关机
#define Key (key1 && key2 && key3)
//EEP存储地址定义
#define D_EEP_SECTOR_SIZE 0x200 //每个扇区0x200==512bytes

9
source/bsp/bsp_key.c

@ -0,0 +1,9 @@
#include "bsp_key.h"
void L2_key_init()
{
D_stdIO_P3(BITN2);
D_stdIO_P3(BITN3); //准双向口
D_stdIO_P4(BITN0);
}

15
source/bsp/bsp_key.h

@ -0,0 +1,15 @@
#ifndef BSP_KEY_H
#define BSP_KEY_H
#include "bsp_config.h"
//按键
#define key1 P32 //音量增大
#define key2 P33 //音量减小
#define key3 P40 //开关机
#define Key (key1 && key2 && key3)
extern void L2_key_init();
#endif

16
source/bsp/bsp_led.c

@ -0,0 +1,16 @@
#include "bsp_led.h"
void L2_led_init()
{
D_HighI_P5(BITN5);
}
void L2_led_ON(u8 LED)
{
LED = LED_ON;
}
void L2_led_OFF(u8 LED)
{
LED = LED_OFF;
}

15
source/bsp/bsp_led.h

@ -0,0 +1,15 @@
#ifndef BSP_LED_H
#define BSP_LED_H
#include "bsp_config.h"
#define RED_LED P55 //单色绿灯
#define GREEN_LED P26 //双色红灯
#define LED_ON 1
#define LED_OFF 0
extern void L2_led_init();
#endif

2
source/ctask/time.c

@ -40,7 +40,7 @@ void timer0_isrHandle (void) D_SERVE_TIMER0
L1_tick_tick(); ///系统中的1sflag 和以10ms为颗粒的延时使用 为tdelay服务
Key_Scan();
// Key_Scan();
//串口回调
for(i = 0; i < SERIAL_MAX_NUM; i++)

Loading…
Cancel
Save