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 14:26
ywlzh 发表于 2016-10-24 15:53
那是MCU内部的问题 告诉你的就是 中断优先级只在嵌套里有用,同时触发 就先做高优先级的中断函数,再做低 ...

就是说低优先级的要等高优先级的执行完才能执行吧 ,即使条件触发也要等待吧

一周热门 更多>