搜索
bottom↓
回复: 2

请教马老师一个精确定时的问题,您先前的帖子我看过了。[问题发在技术版了,不知您是否

[复制链接]

出0入0汤圆

发表于 2008-5-8 09:16:52 | 显示全部楼层 |阅读模式
抱歉,已经在技术版发了

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=1026765&bbs_page_no=1&bbs_id=1000


多谢!

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2008-5-8 10:58:50 | 显示全部楼层
马老师在吗?给个建议我也就死心了。

出0入0汤圆

发表于 2008-5-9 19:56:20 | 显示全部楼层
我看过了.由于中断的响应,已及进入中断都不是完全确定的,因此无法做到非常准确的定时产生一个动作(严格的每隔n个CLK动作一次).

LZ原贴中有个变通的方法是可以考虑的,进一步做调整如下:

1.适当提高系统时钟的频率.

2.采用CTC方式:
    CTC方式计数器是不停的,它产生中断的间隔可以认为是准确的.不确定的是响应中断的时间,会有几个CLK的差别.而进入中断的过程到执行中断第一句指令需要的CLK也是确定的.因此主要是中断响应时间的调整和确定.

    假定定时的准确间隔时间为200(CTC方式,OCR2=200),那么设置OCR2=180,提前中断.TCNT2到达180后申请中断,并自动清零,开始从1开始计数,不会停止.TC2提前20进入中断,在中断中就检查TCNT2的值,到达20,产生动作,并清零TCNT2,然后退出中断.

    中断中的指令执行时间时固定的,这样可以调整掉中断响应时间的小的变化.

    当然,具体编写时需要考虑中断中的指令执行时间,但它是固定的,应该没有问题.(应根据中断服务程序汇编后的代码计算).

这样的话,应该能够保证前后只差1个CLK,如果系统时钟高的话,1个CLK的误差就更小了.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 22:59

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表