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条回答
sint27
2019-03-25 04:34
1、tian会从1开始累加,也就是天会1-2-......31-1......,当然在其他月份到不了31
2、执行中断里的函数时间依具体情况而定
3、中断里的所有函数执行完才会跳出中断

一周热门 更多>