打印

单片机小问题

[复制链接]
8240|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chongxinc|  楼主 | 2013-3-5 12:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
遇到一个题目,让用单片机做。要求一个引脚输出方波,为3ms高电平,2ms低电平,要求定时准确,同时另外一个引脚检测输入的脉冲并计数。
我觉得方波应该用定时器做,检测脉冲用外部中断。但是应该哪个的优先级最高啊?我的想法呢是:如果外部中断的优先级最高,那么在进入中断的时候如果是高电平的2.999ms,那么处理完这个中断会不会使得方波不准确了?同样如果定时器最高的话,那么如果在处理定时器中断的时候有脉冲进来,会不会检测不到。

相关帖子

沙发
加油吧小鱼儿| | 2013-3-5 13:01 | 只看该作者
前者应该是有影响的,后者分情况。1.EX优先级高,当定时器工作之后(当然你应该选择自动重装模式),如果他仍然计时,那么他一直工作到ET为止,EX会及时响应 ,如你所说,在高电平的2.999ms时出现EX,有可能会去响应EX,方波就不准了。2.另外,如果定时器优先级高,处于计时状态时,来了EX,就及时响应呗;如果正在响应ET,那么你应该用示波器测试下脉冲的相应时间T,是否大于ET处理时间,如果是就可以;不是的话,mcu不可能在一个时间点响应两个动作,你应该考虑其他办法!

使用特权

评论回复
板凳
chongxinc|  楼主 | 2013-3-5 13:42 | 只看该作者
加油吧小鱼儿 发表于 2013-3-5 13:01
前者应该是有影响的,后者分情况。1.EX优先级高,当定时器工作之后(当然你应该选择自动重装模式) ...

这个是做过的一个编程测试题,题目就只给了这些内容,说是用单片机编程实现。你看你又什么好的方法吗

使用特权

评论回复
地板
QQ535976462| | 2013-3-5 14:10 | 只看该作者
这个没办法,只能用定时器,才能更准确

使用特权

评论回复
5
chongxinc|  楼主 | 2013-3-5 14:35 | 只看该作者
QQ535976462 发表于 2013-3-5 14:10
这个没办法,只能用定时器,才能更准确

那应该怎么做呢?

使用特权

评论回复
6
加油吧小鱼儿| | 2013-3-5 14:39 | 只看该作者
脉冲有规律可言吗?有的话可以解决     如果是做项目的话,建议你还是测试下波形分析下;不是项目的话,单片机执行效率很高了,汇编去写代码的话,每个机器周期才1us(12M情况下)。暂时想到这么多,我感觉题目的要求更详细些会更好,我也有个参照。

使用特权

评论回复
7
lzqxs89| | 2013-3-5 16:07 | 只看该作者
2楼正解。 不知道有什么办法可以实现么!  关注

使用特权

评论回复
8
fp123123| | 2013-3-5 19:56 | 只看该作者
用AVR的定时器做PWM来产生方波,全硬件实现,不占用程序,程序只管测量脉冲

使用特权

评论回复
9
shibai8899| | 2013-3-6 17:04 | 只看该作者
如果波形需要非常精确,那只能让定时器优先级最高。在处理定时器中断的时候发生外部中断,外部中断标志位是一样会被置位的,不用担心进不了外部中断子程序。如果你的外部中断也要求立即执行,那只能像楼上说的换用别的芯片了。比如楼上说的带硬件PWM的芯片,或且台湾应广的单片机也可以。应广单片机是双核心的,两个核心分别处理自己的任务而不会相互影响。

使用特权

评论回复
10
shibai8899| | 2013-3-6 17:04 | 只看该作者
如果波形需要非常精确,那只能让定时器优先级最高。在处理定时器中断的时候发生外部中断,外部中断标志位是一样会被置位的,不用担心进不了外部中断子程序。如果你的外部中断也要求立即执行,那只能像楼上说的换用别的芯片了。比如楼上说的带硬件PWM的芯片,或且台湾应广的单片机也可以。应广单片机是双核心的,两个核心分别处理自己的任务而不会相互影响。

使用特权

评论回复
11
zjs1988| | 2013-6-5 20:40 | 只看该作者
这个是有规律的方波,能简单点用计数器和定时器来做啊

使用特权

评论回复
12
蓝魔大师弟| | 2013-6-6 08:44 | 只看该作者
学习

使用特权

评论回复
13
zwp0822| | 2013-6-6 09:16 | 只看该作者
学习了!

使用特权

评论回复
14
zhangli019| | 2013-6-7 13:52 | 只看该作者
如果脉冲频率在50K赫兹以下的话,可以让定时器优先级提高;如果脉冲频率很高的话,那么应该把外部中断的优先级提高;定时器的定时在ms级,那么只要外部中断处理时间不超过MS的话,可以提高外部中断的优先级;定时器中断是不会被错过的,使用自动重装载的话,应该可以解决这个问题。

使用特权

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

本版积分规则

15

主题

157

帖子

0

粉丝