使用avr中的输入捕获来测量频率和占空比

时间:2016-07-03 10:17:41

标签: timer avr atmega

我很难绕过输入捕获的概念,以及如何编写一个简单的代码来测量转速计的PWM,例如通过AVR中的输入捕捉和定时器....

1 个答案:

答案 0 :(得分:0)

输入捕获只是为外部事件提供时间戳。对于PWM,这些事件是上升沿和下降沿 一旦启用,ATMEGA的定时器开始随时钟递增。每当发生事件时,它会将此时的定时器值复制到输入捕获寄存器并生成中断。在中断服务程序中,程序应该读取该寄存器并解释这些值以计算占空比等等 在此ISR中,您还必须重新配置定时器寄存器,以便在PWM具有交替边沿时查找备用边沿。 我正在为ATMEGA16L提供粗略的寄存器配置,您可以在数据表中找到完整的详细信息。

TCCR1B - bit6设置为上升,复位为下降。必须在ISR中切换

TCCR1B - 位0,1,2用于设置时钟预分频器

TIMSK - bit5使能输入捕捉中断

TIMSK - 计算所需的bit0定时器溢出中断启用