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.
 
 
 
 

136 lines
2.4 KiB

////////////////////////////////////////////////////////////////////////////
///@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"
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);
}
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; //开中断
}
void L3_task_key_handle(struct _s_task_key_ *p)
{
if(p->key1_ok)
{
if(p->time1>=180)
{
LED1 = ~LED1;
}
else
{
//LED2 = ~LED2;
U8 i;
U8 mu[9];
U16 music[9] = {0x7E,0x07,0xA3,0x43,0x30,0x30,0x39,0x86,0xEF};
//7E 07 A3 43 30 30 39 86 EF
for(i = 0;i<9;i++)
{
mu[i] = music[i]>> 0 & 0xFF;
}
L0_uart3_sendArray((U8 *)&mu, 9);
L0_uart0_sendArray((U8 *)&mu, 9);
}
p->key1_ok = 0;
p->time1=0;
}
if(p->key2_ok)
{
if(p->time2>=180)
{
LED1 = ~LED1;
}
else
{
LED2 = ~LED2;
}
p->key2_ok = 0;
p->time2=0;
}
if(key3 == 0)
{
//Lc_delay_ms(10);//按键防抖
if(key3 == 0)
{
p->key3_ok = 1;
while(!key3)
{
p->time3++;
}
}
}
if(p->key3_ok)
{
if(p->time3>=180)
{
LED1 = ~LED1;
}
else
{
LED2 = ~LED2;
}
p->key3_ok = 0;
p->time3=0;
}
}