51单片机中断里面函数执行的困惑

2019-03-24 17:28发布

  1. void zhongduan1() interrupt 1
  2. {
  3.    TH0=(65536-50000)/256;
  4.    TL0=(65536-50000)%256;
  5.    t++;
  6.         if(t%20==0)
  7.                                 {
  8.                                        
  9.                                          
  10.                                         tian++;
  11.                                 }
  12.                                        

  13.         if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10)
  14.                 {
  15.                         if(tian==32)
  16.                                 {
  17.                                                 t=0;
  18.                                                
  19.                                                  yue++;                tian=1;
  20.                                                
  21.                                                  
  22.                                                
  23.                                                
  24.                                 }
  25.                        
  26.                        
  27.                 }
复制代码这是一段万年历内的代码, 我的疑惑是当tian的参数 置1后,那上面的tian++是不是也变成了从一开始累加,还是一直在累加呢?  求教  另外 我定时50ms进一次中断  那么执行中断里面的函数时间是多少呢  是不是要全部执行完中断内的函数才会跳出中断呢   
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
龙象
2019-03-25 09:41
ywlzh 发表于 2016-10-24 12:35
执行中断里面的函数时间是多少  这个要自己查汇编,计算机器周期,指令周期

是不是要全部执行完中断内 ...

嗯哦  那如果我用两个中断 ,一个是50ms进入中断执行,另外 一个10ms进入,如果设置优先级,是不是会先执行完第一个中断呢 再去执行另外一个。但是我想的是  在执行第一个中断的时候,第二个中断的条件也符合了 程序之间会有冲突吧   怎么运行的呢

一周热门 更多>