You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

242 lines
4.9 KiB

4 years ago
////////////////////////////////////////////////////////////////////////////
///@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"
#include "../bsp/bsp_key.h"
#include "../bsp/bsp_WT2605B.h"
4 years ago
struct _s_task_key_ s_task_key_handle;
4 years ago
void L0_key_init(void)
{
//使能 INT1下降沿中断
//IT0 = 0;
4 years ago
//外部中断允许
//EX0 = 1;
4 years ago
//使能 INT1下降沿中断
//IT1 = 0;
4 years ago
//外部中断允许
//EX1 = 1;
4 years ago
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;
4 years ago
}
#if 0
4 years ago
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
4 years ago
void L3_task_key_handle(struct _s_task_key_ *p)
{
if(key1 == 0)
{
//Lc_delay_ms(10);//按键防抖
if(key1 == 0)
4 years ago
{
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++;
}
}
4 years ago
}
if(p->key2_ok == 1) //if(p->key2_ok) 这里的p->key2_ok总是被赋值为0xFB,原因未知
4 years ago
{
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;
4 years ago
}
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
4 years ago
}
p->key2_ok = 0;
p->time2 = 0;
4 years ago
}
#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;
4 years ago
while(!key3)
{
p->time3++;
}
}
}
if(p->key3_ok == 1) //if(p->key3_ok) 这里的p->key3_ok总是被赋值为0x12,原因未知
{
if(p->time3>=10)
4 years ago
{
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_w600_para.mode=W600_AP;
// L3_task_W600_flow_init(W600_AP);
// //G.w600_mode = 0;
4 years ago
}
else
{
//LED2 = ~LED2;
4 years ago
}
p->key3_ok = 0;
p->time3 = 0;
4 years ago
}
}