avr单片机定时中断问题

2019-03-24 20:30发布


请问,在做AVR单片机定时中断时,怎样确定预分频因子,和OCRn以及TCNT的值??? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
turbogears
1楼-- · 2019-03-25 02:49
要根据具体的应用综合考虑性能和控制精度等因素。
turbogears
2楼-- · 2019-03-25 08:29
举个最近正在做的项目

Atmega16,12M晶振。
AD采样控制输出PWM(由于某种原因,不能使用定时器的PWM功能)

PWM的脉冲周期是20ms,脉冲宽度在1ms-2ms间根据AD值变化,变化范围1ms。
使用TC1

8分频的话,1ms=1500个时钟脉冲
10位AD采样,最大1024,用于控制1ms(1500个时钟脉冲)的输出,对于10位AD采样来说,没有精度损失。
另外,脉冲周期20ms=30000个时钟脉冲,小于TCNT1的最大长度65535,编程也方便很多。

不分频的话,1ms=12000个时钟脉冲
系统负担不说。
AD采样只有1024,用于控制12000个时钟脉冲,精度没有提高,所以没有必要。
另外,20ms=240000个时钟脉冲,大于65535,程序的复杂性增加。

64分频,1ms=187.5个时钟脉冲
AD采样的1024精度的不到发挥。
如果这时仍能满足你的使用要求,大可以采用8位的AD转换(256)。从而可采用较低成本的其它芯片了。

所以,在这个应用中,8分频是最佳选择。

huayuliang
3楼-- · 2019-03-25 13:42
手册里不是有公式么?仔细看一遍就OK的。

一周热门 更多>