//////////////////////////////////////////////////////////////////////////// ///@copyright Copyright (c) 2018, 传控科技 All rights reserved. ///------------------------------------------------------------------------- /// @file bsp_test.c.c /// @brief bsp @ driver config ///------------------------------------------------------------------------- /// @version 1.0 /// @author CC /// @date 20180331 /// @note cc_AS_stc02 ////////////////////////////////////////////////////////////////////////////// #include "task_key.h" #include "../clib/clib.h" #include "../msp/uart3.h" #include "../msp/uart0.h" #include "app_task_speech.h" struct _s_task_key_ s_task_key_handle; void L0_key_init(void) { //使能 INT1下降沿中断 //IT0 = 0; //外部中断允许 //EX0 = 1; //使能 INT1下降沿中断 //IT1 = 0; //外部中断允许 //EX1 = 1; L1_task_init(&s_task_key_handle.task); L3_task_s_go(s_task_key_handle,D_task_init); s_task_key_handle.key1_ok = 0; s_task_key_handle.key2_ok = 0; s_task_key_handle.key3_ok = 0; s_task_key_handle.time1= 0; s_task_key_handle.time2 = 0; s_task_key_handle.time3 = 0; } #if 0 void INT0_isrHanddle(void) D_SERVE_INT0 { struct _s_task_key_ *p = &s_task_key_handle; EX0=0; //关中断 //do sth if(key1 == 0) { //Lc_delay_ms(10);//按键防抖 if(key1 == 0) { p->key1_ok = 1; while(!key1) { p->time1++; } } } IE0 = 0; //清除INT0中断程序执行过程中的中断请求 EX0 = 1; //开中断 } void INT1_isrHanddle(void) D_SERVE_INT1 { struct _s_task_key_ *p = &s_task_key_handle; EX1 = 0; //关中断 //do sth if(key2 == 0) { //Lc_delay_ms(10); if(key2 == 0) { p->key2_ok = 1; while(!key2) { p->time2++; } } } IE1 = 0; //清除INT1中断程序执行过程中的中断请求 EX1 = 1; //开中断 } #endif void L3_task_key_handle(struct _s_task_key_ *p) { if(key1 == 0) { //Lc_delay_ms(10);//按键防抖 if(key1 == 0) { p->key1_ok = 1; while(!key1) { p->time1++; L0_uart0_uchex(p->time1); } } } if(p->key1_ok == 1) { if(p->time1 >= 10) { // L0_uart0_uchex(p->time1); // //LED1 = ~LED1; // LED4 = ~LED4; L0_uart0_sendstr("zmg"); L0_uart0_0d0a(); L0_uart3_sendArray((U8 *)&audio_zmg,9); LED1 = ~LED1; } else { // L0_uart0_uc('A'); // // U8 front[14] = {0xFF,0xFE,0x0B,0x14,0x10,0x00,0x03,0x00,0x01,0x02,0x00,0x00,0x54,0xF3}; // LED3 = 1; // Lc_delay_ms(100); // LED3 = 0; // LED3 = ~LED3; // // L3_gm35_send_data((U8 *)&front,14); #if 0 U8 i; U8 mu[9]; U8 music[9] = {0x7E,0x07,0xA3,0x43,0x30,0x30,0x39,0x86,0xEF}; FF FE 0B 14 10 00 03 00 01 02 00 00 54 F3 //7E 07 A3 43 30 30 39 86 EF for(i = 0;i<9;i++) { mu[i] = music[i] & 0xFF; } L0_uart3_sendArray((U8 *)&mu, 9); L0_uart0_sendArray((U8 *)&mu, 9); #endif } p->key1_ok = 0; p->time1 = 0; } if(key2 == 0) { //Lc_delay_ms(10);//按键防抖 if(key2 == 0) { p->key2_ok = 1; while(!key2) { p->time2++; } } } if(p->key2_ok == 1) //if(p->key2_ok) 这里的p->key2_ok总是被赋值为0xFB,原因未知 { if((p->time2)/100>=20) { L0_uart0_sendstr("p->time2 = "); L0_uart0_ushex(p->time2); L0_uart0_0d0a(); L0_uart0_sendstr("zbt"); L0_uart0_0d0a(); L0_uart3_sendArray((U8 *)&audio_zbt,9); LED2 = ~LED2; } else { // U8 back[14] = {0xFF,0xFE,0x0B,0x14,0x10,0x00,0x03,0x00,0x01,0x02,0x00,0x01,0x95,0x33}; // LED3 = 1; // Lc_delay_ms(100); // LED3 = 0; // LED3 = ~LED3; // L3_gm35_send_data((U8 *)&back,14); #if 0 U8 i; U8 mu[9]; U8 music[9] = {0x7E,0x07,0xA3,0x43,0x30,0x30,0x39,0x86,0xEF}; //FF FE 0B 14 10 00 03 00 01 02 00 00 54 //7E 07 A3 43 30 30 39 86 EF for(i = 0;i<9;i++) { mu[i] = music[i] & 0xFF; } L0_uart3_sendArray((U8 *)&mu, 9); L0_uart0_sendArray((U8 *)&mu, 9); #endif } p->key2_ok = 0; p->time2 = 0; } #if 0 if(p->key2_ok) { if(p->time2>=180) { LED1 = ~LED1; } else { LED2 = ~LED2; } p->key2_ok = 0; p->time2=0; } #endif if(key3 == 0) { //Lc_delay_ms(10);//按键防抖 if(key3 == 0) { p->key3_ok = 1; while(!key3) { p->time3++; } } } if(p->key3_ok == 1) //if(p->key3_ok) 这里的p->key3_ok总是被赋值为0x12,原因未知 { if(p->time3>=10) { L0_uart0_sendstr("SchulteGrid"); L0_uart0_0d0a(); L0_uart3_sendArray((U8 *)&audio_SchulteGrid,9); // LED3 = ~LED3; // LED2 = ~LED2; // LED1 = ~LED1; // LED4 = ~LED4; // Lc_delay_ms(100); // // LED1 = 0; // L3_gm35_send_str("+++"); // Lc_delay_ms(1000); // //s_task_gm35_flow.mode=W600_AP; // L3_task_gm35_flow_init(W600_AP); // //G.w600_mode = 0; } else { //LED2 = ~LED2; } p->key3_ok = 0; p->time3 = 0; } }