打印
[PIC®/AVR®/dsPIC®产品]

PIC16F876A串行中断和定时器中断同时发生时

[复制链接]
1247|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
geekgou|  楼主 | 2019-2-27 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的这个ic里只有一个中断入口,如果我打开定时器中断和串行中断,定时器中断发生的比较频繁,会不会影响串行中断,或者串行中断发生时,会不会影响定时器定时。我也找不到手册上哪有介绍这个事情的地方,没有依据,不踏实。求指点。
沙发
oxygenzz| | 2019-2-27 17:19 | 只看该作者
有一篇应用笔记,专门讲中档8位PIC 中断系统的:
http://www.microchip.com.cn/newc ... brary/31008a_cn.pdf

中断处理都要写在中断函数中,通过查询中断标志位,确定是哪个或哪几个中断发生了,再执行相应的代码。
中断函数里应该只执行必要必须的操作,其他的处理运算,尽可能放在主函数中去做。这样可以尽量减少处理时间。
建议对中断处理时间进行计算或测量,以保证在最坏情况下,也可以保证实时性要求高的任务的时间要求也能得到满足。

要具体情况具体分析,你提出的情况,要综合考虑定时器中断频率,串口频率,中断处理执行时间,甚至串口的通信协议等等。


使用特权

评论回复
板凳
Latin_newday| | 2019-2-27 18:22 | 只看该作者
这种肯定有同时触发的可能,一般我们都要做取舍,就是所谓的设置中断优先级。优先级高的先处理。
一般串口中断会设置高优先级。

使用特权

评论回复
地板
geekgou|  楼主 | 2019-2-28 08:41 | 只看该作者
oxygenzz 发表于 2019-2-27 17:19
有一篇应用笔记,专门讲中档8位PIC 中断系统的:
http://www.microchip.com.cn/newcommunity/Uploads/Downl ...

我想拿来模拟pwm的,自带的8位pwm精度不够,看来定时器也不行,参考你这个文件和我查到的,串行中断发生时,定时器中断会被挂起(中断发生时会关闭全局中断),那我驱动的电机估计会偶尔卡一下。

使用特权

评论回复
5
ayb_ice| | 2019-2-28 08:47 | 只看该作者
当然是有影响的,所以説中断程序要尽量简短

使用特权

评论回复
6
cdyyabc| | 2019-2-28 09:57 | 只看该作者
geekgou 发表于 2019-2-28 08:41
我想拿来模拟pwm的,自带的8位pwm精度不够,看来定时器也不行,参考你这个文件和我查到的,串行中断发生 ...

我记得876A这个芯片的PWM是10位的,你核实一下

使用特权

评论回复
7
oxygenzz| | 2019-2-28 11:27 | 只看该作者
geekgou 发表于 2019-2-28 08:41
我想拿来模拟pwm的,自带的8位pwm精度不够,看来定时器也不行,参考你这个文件和我查到的,串行中断发生 ...

中断标志位是否置位,跟全局中断使能/禁能没有关系。若定时器中断和串口中断同时发生,在中断处理函数中,能检查到对应的两个中断标志都置位了。

楼主是驱动什么类型的电机?一般换相使用中断来做,驱动电机的PWM信号因为对相位稳定度要求比较高,需要硬件外设实现的。

PIC16F876A里面带有两路10bit的PWM。

使用特权

评论回复
8
mnmjmkml| | 2019-2-28 19:04 | 只看该作者
进中断之后,通过标志位查询是什么中断。

使用特权

评论回复
9
CoolSilicon| | 2019-3-1 08:50 | 只看该作者
因为只有一个中断入口, 如果几个中断同时发生, 谁的ISR写在前面谁就先执行..

所以, 要评估一下, 均衡各个中断的影响.

使用特权

评论回复
10
天灵灵地灵灵| | 2019-3-4 21:22 | 只看该作者
肯定会影响。

使用特权

评论回复
11
天灵灵地灵灵| | 2019-3-4 21:22 | 只看该作者
肯定会影响。

使用特权

评论回复
12
internally| | 2019-3-5 17:45 | 只看该作者
中断里面的动作尽量少,可以通过标志位将大部分流程放到中断之外处理

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

12

帖子

0

粉丝