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

Timer 使用avr中的输入捕获测量频率和占空比,timer,avr,atmega,Timer,Avr,Atmega,我很难理解输入捕获的概念以及如何编写一个简单的代码来测量转速表的PWM,例如通过AVR中的输入捕获和计时器……输入捕获只是给外部事件一个时间戳。对于PWM,这些事件是上升沿和下降沿。 一旦启用,ATMEGA的计时器开始随时钟递增。无论何时发生事件,它都会将当时的计时器值复制到输入捕获寄存器并生成中断。在中断服务程序中,您的程序应该读取该寄存器并解释这些值以计算占空比或其他任何值。 在此ISR中,您还必须重新配置定时器寄存器,以查找备用边,因为PWM具有备用边。 我为ATMEGA16L提供了一个粗

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

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

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

TCCR1B-用于设置时钟预定标器的位0,1,2

TIMSK-位5启用输入捕获中断

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

它不是“代码”,只是“代码”。Code是一个聚合名词,不能与不定冠词组合。