2025-11-08 06:16:05
AVR定时器就是用来计时间的芯片小工具,就像手机里的闹钟一样。想要用定时器得先选好工作模式,比如计数脉冲、比较匹配或者PWM输出这三种。接着要设置分频系数,让定时器走步别太快或太慢,比如用1分频就是每计一个数等1微秒。然后得填入比较值,当计数器走到这个数就触发动作,比如让LED闪烁或者启动PWM调光。要开启动能,定时器才能开始工作。整个过程就像搭积木,先搭框架再填细节。
为什么得这么操作呢?因为AVR定时器内部有计数器寄存器,比如ATmega328P的8位计数器最大能到255,所以比较值要设在这个范围内。假设分频系数选64,那么1MHz的晶振实际计数频率就是15625Hz(1MHz÷64)。比如要每隔1秒触发一次,比较值就得算15625×1000=15625000,但8位计数器最大255,所以得用16位定时器。这时候得换用模式14(比较匹配自动重载),先填高8位0x3E8,低8位0x7F0,这样实际比较值就是15625000,刚好1秒。整个过程就像算数学题,先确定需求再找公式,调整参数。
本题链接: