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
1楼-- · 2019-03-25 04:34
1、tian会从1开始累加,也就是天会1-2-......31-1......,当然在其他月份到不了31
2、执行中断里的函数时间依具体情况而定
3、中断里的所有函数执行完才会跳出中断
ywlzh
2楼-- · 2019-03-25 05:51
 精彩回答 2  元偷偷看……
龙象
3楼-- · 2019-03-25 05:59
sint27 发表于 2016-10-24 09:17
1、tian会从1开始累加,也就是天会1-2-......31-1......,当然在其他月份到不了31
2、执行中断里的函数时间 ...

嗯嗯  受教了
龙象
4楼-- · 2019-03-25 09:41
ywlzh 发表于 2016-10-24 12:35
执行中断里面的函数时间是多少  这个要自己查汇编,计算机器周期,指令周期

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

嗯哦  那如果我用两个中断 ,一个是50ms进入中断执行,另外 一个10ms进入,如果设置优先级,是不是会先执行完第一个中断呢 再去执行另外一个。但是我想的是  在执行第一个中断的时候,第二个中断的条件也符合了 程序之间会有冲突吧   怎么运行的呢
ywlzh
5楼-- · 2019-03-25 10:37
 精彩回答 2  元偷偷看……
龙象
6楼-- · 2019-03-25 14:26
ywlzh 发表于 2016-10-24 15:53
那是MCU内部的问题 告诉你的就是 中断优先级只在嵌套里有用,同时触发 就先做高优先级的中断函数,再做低 ...

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

一周热门 更多>