16660|14

64

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

串口中断和定时中断,外部中断在一起如何调用? [复制链接]

当系统有个定时中断。
比如定时采集温度值,然后通过串口发送到上位机。这样程序里要用到定时中断和串口中断
比如定时1s采样一次。那么是1s内调用串口中断。还是1s外再调用

如果是1s后才允许用串口中断。是不是就不是1s定时采样了?那也就是说,执行1s以后。再调用串口接收中断了。就会不准。接收数据也要时间的哈。比如上位机向下位机写入一帧数据,24个字节。(接收中断)。波特率9600. 那么24*8/9600=20ms

也就是说,处理了定时中断后,再处理的串口中断
时间上:实际是定时+串口


如果是1s内,那么定时中断内嵌套串口中断?

不清楚,串口接收中断究竟用于定时中断内,还是外。


当然,定时中断内只是设定个标志位,具体运算程序还是在主循环里做


担心有无这种情况出现:


上位机发来数据,不收就会丢。计时被中断,就会错过。

唯一一个,就是发命令时候正想翻转输出脚时候,来了串口中断。。。
此帖出自51单片机论坛

最新回复

有些事情是不需要很准也不可能很准的,比如你ad采样1S一次,就算被打断了差个中断执行周期也就1us都不到的时间,你的晶振温漂也会大于这个数. 如果你的ad是定时器触发这个误差是不被累计的.  详情 回复 发表于 2013-6-7 20:04

点评

有些事情是不需要很准也不可能很准的,比如你ad采样1S一次,就算被打断了差个中断执行周期也就1us都不到的时间,你的晶振温漂也会大于这个数. 如果你的ad是定时器触发这个误差是不被累计的.  详情 回复 发表于 2013-6-7 20:04
串口收到完整的数据字节后中断,所以你的担心没理由.  详情 回复 发表于 2013-6-7 19:58
点赞 关注(2)
 

回复
举报

133

帖子

52

TA的资源

纯净的硅(初级)

沙发
 
可以设置中断的优先级。根据实际的应用。那个是什么来着我给忘记了。。。
此帖出自51单片机论坛

点评

设定定时中断先到,优先级高。 当定时中断触发时,在主循环中进行运算。此时,如果串口中断触发,那么势必影响运算。这问题如何解决呢?  详情 回复 发表于 2013-5-31 09:28
 
个人签名51单片机交流群  20766859.欢迎大家的加入~
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 bintimes 的帖子

设定定时中断先到,优先级高。 当定时中断触发时,在主循环中进行运算。此时,如果串口中断触发,那么势必影响运算。这问题如何解决呢?
此帖出自51单片机论坛

点评

先回答第一个问题,你帖子里的。 只是个人的想法,可能有不对的地方,希望大家指正 如果温度采集,那时间不会有太大的影响,温度不会突变,而且是缓慢变化基本ad采样速度都能满足得了,这时候数据在ad的寄存器,然  详情 回复 发表于 2013-5-31 10:22
 
 
 

回复

133

帖子

52

TA的资源

纯净的硅(初级)

4
 

回复 板凳 yanse51 的帖子

先回答第一个问题,你帖子里的。
只是个人的想法,可能有不对的地方,希望大家指正
如果温度采集,那时间不会有太大的影响,温度不会突变,而且是缓慢变化基本ad采样速度都能满足得了,这时候数据在ad的寄存器,然后发给单片机。这时候如果有温度变化会继续采集,但是接不接受靠单片机的中断来处理,也就是说,处理不完是不会跳出中断,定时中断优先级高,所以不用担心数据采集不到的问题。51最只能支持一级嵌套,52可以支持二级嵌套,如果你把串口的中断写在定时中断里是可以进入中断的。但这样就没有数据了,所以为了保证能收到数据,还是不要在定时中断里嵌套串口的中断,所以要发送数据应该在采集时间后。不过,1s是不是有点太长?不知道需要测量哪种温度的变化。如果是那种变化速度特别快的话,采集的时间就应该更短,应该来说不会影响你的串口通讯。

这个帖子置顶一个星期方便大家讨论。嘿嘿。这种提问的帖子才是有意义的。哈哈
此帖出自51单片机论坛
 
个人签名51单片机交流群  20766859.欢迎大家的加入~
 
 

回复

581

帖子

0

TA的资源

五彩晶圆(初级)

5
 
简单了说是中断嵌套问题,大了说是任务管理的问题,无操作系统裸奔型任务管理。
1、如果系统是自己设计那么简单,只需要做成顺序的就行,先采集温度,再发送标志给上位机,上位机回答并进行状态设置,同步整个系统,只用一个定时中断
2、如果上位机必须异步设置的话,就是通讯的问题了,已经忘记51的串口有没有FIFO深度设置了,如果没有那么中断就是一个字节一个,异步中断肯定需要嵌套
,这时1S中断优先级高,进去后做个标志马上出来,然后进入串口中断,51的中断响应大概是us级别的吧,应该来得及接收一个字节的数据。
此帖出自51单片机论坛
 
 
 

回复

598

帖子

0

TA的资源

纯净的硅(初级)

6
 
怎么讨论的都是比如啊?
此帖出自51单片机论坛

点评

已经不错了。。。现在的帖子基本都是给个要求直接要程序的  详情 回复 发表于 2013-6-1 12:54
 
 
 

回复

44

帖子

0

TA的资源

一粒金砂(中级)

7
 
废话君!怎么哪都见到你的废话\?
此帖出自51单片机论坛

点评

- -。。。。感觉这个没什么废话的啊。  详情 回复 发表于 2013-6-1 12:53
 
 
 

回复

133

帖子

52

TA的资源

纯净的硅(初级)

8
 

回复 7楼 ludazhi 的帖子

- -。。。。感觉这个没什么废话的啊。
此帖出自51单片机论坛

点评

:funk: 我没有说是你呀!是你自己抢着承认的哈.................  详情 回复 发表于 2013-6-3 08:42
 
个人签名51单片机交流群  20766859.欢迎大家的加入~
 
 

回复

133

帖子

52

TA的资源

纯净的硅(初级)

9
 

回复 6楼 爱心 的帖子

已经不错了。。。现在的帖子基本都是给个要求直接要程序的
此帖出自51单片机论坛
 
个人签名51单片机交流群  20766859.欢迎大家的加入~
 
 

回复

44

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 8楼 bintimes 的帖子

我没有说是你呀!是你自己抢着承认的哈.................
此帖出自51单片机论坛

点评

:Sweat: 我木有说我- -  详情 回复 发表于 2013-6-3 09:54
 
 
 

回复

133

帖子

52

TA的资源

纯净的硅(初级)

11
 

回复 10楼 ludazhi 的帖子

我木有说我- -
此帖出自51单片机论坛
 
个人签名51单片机交流群  20766859.欢迎大家的加入~
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

12
 

概念错误

中断是不能被调用的,只能通过事件触发。。
此帖出自51单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

13
 

回复 楼主 yanse51 的帖子

串口收到完整的数据字节后中断,所以你的担心没理由.
此帖出自51单片机论坛
 
 
 

回复

4008

帖子

0

TA的资源

版主

14
 

回复 楼主 yanse51 的帖子

有些事情是不需要很准也不可能很准的,比如你ad采样1S一次,就算被打断了差个中断执行周期也就1us都不到的时间,你的晶振温漂也会大于这个数.
如果你的ad是定时器触发这个误差是不被累计的.
此帖出自51单片机论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(中级)

15
 
多谢了。我再实战弄个,看看效果
此帖出自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
快速回复 返回顶部 返回列表