高级会员

- 积分
- 616
- 金钱
- 616
- 注册时间
- 2016-12-1
- 在线时间
- 65 小时
|

楼主 |
发表于 2017-3-3 16:06:05
|
显示全部楼层
求指点,
本帖最后由 kifea 于 2017-3-3 16:13 编辑
在外部中断按键中,怎么实现key0;key1执行之中功能,wk_up按下之后key0;key1又执行另外功能
下面是一段简单的程序
|
static u8 wk_up_bz=0; //wk_up检测按下标志
u8 EXTI0_IRQHandler()
{
delay_ms(10); //Ïû¶¶
if(WK_UP==1)
{
wk_up_bz=!wk_up_bz; //è¡·′
EXTI_ClearITPendingBit(EXTI_Line0); //Çå3yEXTI0Ïß·1òÆeλ
return wk_up_bz;
}
}
void EXTI9_5_IRQHandler(void)
{
delay_ms(10); //Ïû¶¶
if(KEY0==0)
{
if(wk_up_bz==1)
{
a++;
if(a==24)
a=0;
}
else
{ LED0=!LED0;
b++;
if(b==60)
{
a++;
b=0;
if(a==24)
a=0;
}
LED0=!LED0;
}
}
LCD_ShowxNum(140,100,c,2,24,0);//ÏÔê¾Ãë
LCD_ShowxNum(104,100,b,2,24,0);//ÏÔê¾·Ö
LCD_ShowxNum(70,100,a,2,24,0);//ÏÔê¾ê±
EXTI_ClearITPendingBit(EXTI_Line5); //Çå3yLINE5éÏμÄÖD¶Ï±ê־λ
}
void EXTI15_10_IRQHandler(void)
{
delay_ms(10); //Ïû¶¶
if(KEY1==0)
{
if(wk_up_bz==1)
{
a--;
if(a==24)
a=0;
}
else
{
LED1=!LED1;
b--;
if(b==60)
{
a--;
b=0;
if(a==24)
a=0;
}
LED1=!LED1;
}
}
LCD_ShowxNum(140,100,c,2,24,0);//ÏÔê¾Ãë
LCD_ShowxNum(104,100,b,2,24,0);//ÏÔê¾·Ö
LCD_ShowxNum(70,100,a,2,24,0);//ÏÔê¾ê±
EXTI_ClearITPendingBit(EXTI_Line15); //Çå3yLINE15Ïß·1òÆeλ
}
|
|