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.
126 lines
2.2 KiB
126 lines
2.2 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;
|
|
}
|
|
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;
|
|
}
|
|
|
|
}
|
|
|
|
|