Arduino 在Atmega128A上使用定时器捕获
我阅读了Atmega128的数据表,并尝试使用输入捕获引脚ICP1。 为了测试它,我在端口C引脚1上生成了一个sqaure波。我正在使用USB-TTL,使用X-CTU软件,使用命令Arduino 在Atmega128A上使用定时器捕获,arduino,microcontroller,avr,atmega,Arduino,Microcontroller,Avr,Atmega,我阅读了Atmega128的数据表,并尝试使用输入捕获引脚ICP1。 为了测试它,我在端口C引脚1上生成了一个sqaure波。我正在使用USB-TTL,使用X-CTU软件,使用命令USART\u Transmitnumber(timer\u capt,0)和USART\u Transmitchar(0x0d,0)查看笔记本电脑上的值,该命令用于下一行命令。我已经确认USART函数和端口C引脚1上的方波工作正常。问题是变量timer\u capt的值永远不会被打印出来。这意味着没有生成中断事件。我
USART\u Transmitnumber(timer\u capt,0)
和USART\u Transmitchar(0x0d,0)
查看笔记本电脑上的值,该命令用于下一行命令。我已经确认USART函数和端口C引脚1上的方波工作正常。问题是变量timer\u capt
的值永远不会被打印出来。这意味着没有生成中断事件。我做错了什么
int main(无效)
{
TCNT1=0;
TCCR1B=(1)请编辑您的问题,并提供答案。不清楚您的问题和预期结果。您声明的函数ISR没有返回值,也没有TIMER1\u CAPT\u vect的类型,并且您从未从main调用它,因此它不会被执行……1.您是否通过设置bitTICIE1来启用输入捕获中断>在该TIMSK
register?2.您确定USART\u Transmit…
在中断处理程序内工作(即,当进一步的中断被禁用时)?@和peiISR(TIMER1\u CAPT\u vect){}
正确定义了TIMER1捕获事件的中断处理程序,并且如果中断被启用,这些事件将被调用。(ISR是一个宏)。