找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于单片机执行两个中断的问题

查看数: 3008 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-6-13 09:40

正文摘要:

我做了一个da的中断,一个ad的中断,现在我想通过外接按键控单片机执行其中某一个中断,但是仿真只执行其中da的中断,我是初学者,请大神指导。我同学说可以用中断嵌套,但是我不会这个。 下面是程序清单: #inclu ...

回复

ID:561156 发表于 2019-6-14 22:22
笨笨兔 发表于 2019-6-14 12:56
你设3个标志位:KEY_FLAG,AD_FLAG.DA_FLAG,有标志是执行,无标志时不执行。
按键确认后,根据键值来规定设 ...

好的,谢谢。我去试试
ID:158375 发表于 2019-6-14 12:56
你设3个标志位:KEY_FLAG,AD_FLAG.DA_FLAG,有标志是执行,无标志时不执行。
按键确认后,根据键值来规定设定AD_FLAG = 1 或 0,DA_FLAG相同处理。你可以中段允许、禁止或者用程序来控制

没看你程序,只是给你个思路。
ID:561156 发表于 2019-6-13 21:35
笨笨兔 发表于 2019-6-13 16:39
说说你想要做什么?

我的单片机外部中断接了两个按键,我想通过按下上面的按键执行ad转换的中断,按下下面的按键执行da转换的中断
ID:158375 发表于 2019-6-13 16:39
说说你想要做什么?
ID:332444 发表于 2019-6-13 16:15
主函数加:bit k;然后判断K4按下K=1,K5按下K=0,然后判断K去执行不同的模块,你那样写肯定是不行的,除非你按键一直按下不动。
  1. int main(void)
  2. {
  3. bit k;         
  4. IntConfiguration();
  5.          
  6. if(K4==0)k=1;
  7. if(K5==0)k=0;  
  8.          while(1)
  9.          {
  10.             scanKey();
  11.                          if(k){         sys_int();         Timer0Int();}
  12. else{                 tlc0832_init();         timer0_init();}
  13.                                  }
  14.                                        
  15.          

  16.          
  17.                         
  18.                          }  
复制代码

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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