|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
///@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,原因未知
|
|
|
|
{
|
|
|
|
L0_uart0_sendstr("p->key2_ok = ");
|
|
|
|
L0_uart0_uchex(p->key2_ok);
|
|
|
|
L0_uart0_0d0a();
|
|
|
|
if(p->time2>=10)
|
|
|
|
{
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|