OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2322|回复: 1

求指点

[复制链接]

20

主题

67

帖子

0

精华

高级会员

Rank: 4

积分
616
金钱
616
注册时间
2016-12-1
在线时间
65 小时
发表于 2017-3-3 15:48:05 | 显示全部楼层 |阅读模式
在外部中断按键中,怎么实现key0;key1执行之中功能,wk_up按下之后key0;key1又执行另外功能
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

67

帖子

0

精华

高级会员

Rank: 4

积分
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λ
                               
}

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 00:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表