打印

如何用3个16bit定时器级连以实现48bit超长定时器?

[复制链接]
2644|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mohanwei|  楼主 | 2009-8-21 15:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一个产品需要用到长时间、高精度的事件记录功能,当前的做法是通过软件接力的方式实现,即在定时器中断里对长整形变量进行加1操作……精度也完全可以满足要求。
下一步可能会改用STM32,打算用TIM2->TIM3->TIM4拼成48bit定时器,其中TIM2使用主时钟,不分频。TIM2向上溢出时触发TIM3加1;TIM3向上溢出时触发TIM4加1。所有定时器都不用中断,主程序在需要的时候直接读取计数器。
使用STM32F103VBT6,IAR4.42,不知香版主有没有相关的例程?ST的那个“AN2592”不太适用。
沙发
香水城| | 2009-8-21 17:12 | 只看该作者
哈哈,这么长的计时,我还没有相关的例程,:P

使用特权

评论回复
板凳
john_light| | 2009-8-21 17:15 | 只看该作者
触类旁通:shutup:

使用特权

评论回复
地板
cyzzzz| | 2009-8-21 20:15 | 只看该作者
典型的浪费资源

使用特权

评论回复
5
mohanwei|  楼主 | 2009-8-24 11:26 | 只看该作者
有区别的。进中断需要排队,++也需要时间,还有可能被别的中断卡住……级连的误差是sysclk级别,软件接力则是sysclk/10以上。正因为这样,需要实时精确采样的地方,如示波器、采集卡……几乎都是用FPGA或者CPLD来搞的。
对于5楼的观点,我认为花钱买了个芯片,里面有N个定时器你只用了1个,那才叫真的浪费。如果N个都能用上,从而大大降低了系统时钟的要求,例如原来72MHz,现在只需8MHz,可靠性的提高是不言而喻的……
软件实现不是不会用,51里从来都是一个定时器搞定时钟、显示扫描、键盘扫描、时间片划分……呵呵

使用特权

评论回复
6
banhushui| | 2009-8-24 17:49 | 只看该作者
看来64位的还是有用处,要是成本也低的话就更好了

使用特权

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

本版积分规则

177

主题

9320

帖子

24

粉丝