5827|6

47

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

51单片机中断里面函数执行的困惑 [复制链接]

  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进一次中断  那么执行中断里面的函数时间是多少呢  是不是要全部执行完中断内的函数才会跳出中断呢   
此帖出自51单片机论坛

最新回复

本帖最后由 ywlzh 于 2016-10-24 15:55 编辑 那是MCU内部的问题 告诉你的就是 中断优先级只在嵌套里有用,同时触发 就先做高优先级的中断函数,再做低优先级的中断函数 低优先级的中断还是会做,只不过有了等待时间   详情 回复 发表于 2016-10-24 15:53
点赞 关注
 

回复
举报

1800

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
1、tian会从1开始累加,也就是天会1-2-......31-1......,当然在其他月份到不了31
2、执行中断里的函数时间依具体情况而定
3、中断里的所有函数执行完才会跳出中断
此帖出自51单片机论坛

点评

嗯嗯 受教了  详情 回复 发表于 2016-10-24 15:29
 
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

板凳
 
执行中断里面的函数时间是多少  这个要自己查汇编,计算机器周期,指令周期

是不是要全部执行完中断内的函数才会跳出中断呢    这个在C语言里就是这么规定的(要不然打上括号是干嘛的),在汇编里要加上 reti 指令
此帖出自51单片机论坛

点评

嗯哦 那如果我用两个中断 ,一个是50ms进入中断执行,另外 一个10ms进入,如果设置优先级,是不是会先执行完第一个中断呢 再去执行另外一个。但是我想的是 在执行第一个中断的时候,第二个中断的条件也符合了 程序  详情 回复 发表于 2016-10-24 15:34
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

47

帖子

0

TA的资源

一粒金砂(中级)

4
 
sint27 发表于 2016-10-24 09:17
1、tian会从1开始累加,也就是天会1-2-......31-1......,当然在其他月份到不了31
2、执行中断里的函数时间 ...

嗯嗯  受教了
此帖出自51单片机论坛
 
 
 

回复

47

帖子

0

TA的资源

一粒金砂(中级)

5
 
ywlzh 发表于 2016-10-24 12:35
执行中断里面的函数时间是多少  这个要自己查汇编,计算机器周期,指令周期

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

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

点评

那是MCU内部的问题 告诉你的就是 中断优先级只在嵌套里有用,同时触发 就先做高优先级的中断函数,再做低优先级的中断函数  详情 回复 发表于 2016-10-24 15:53
 
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

6
 
本帖最后由 ywlzh 于 2016-10-24 15:55 编辑
龙象 发表于 2016-10-24 15:34
嗯哦  那如果我用两个中断 ,一个是50ms进入中断执行,另外 一个10ms进入,如果设置优先级,是不是会先执 ...

那是MCU内部的问题 告诉你的就是 中断优先级只在嵌套里有用,同时触发 就先做高优先级的中断函数,再做低优先级的中断函数

低优先级的中断还是会做,只不过有了等待时间
此帖出自51单片机论坛

点评

就是说低优先级的要等高优先级的执行完才能执行吧 ,即使条件触发也要等待吧  详情 回复 发表于 2016-10-24 22:05
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

47

帖子

0

TA的资源

一粒金砂(中级)

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

就是说低优先级的要等高优先级的执行完才能执行吧 ,即使条件触发也要等待吧
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表