问题描述
它不切换并且始终处于状态,为什么?我已经尝试了很多次。无法确定原因
#include
void delay_timer0(){
TCNT0 = 0x00;
TCCR0A = 0x00;
TCCR0B = 0x01;
while((TIFR0 & 0x01) == 0);
TCCR0A = 0x00;
TCCR0B = 0x00;
TIFR0 = 0x01;
}
这是在主要方法下进行切换的无限循环...
int main(void){
DDRB = DDRB | (1<<5); //output pb5
while(1){
PORTB = PORTB ^ (1<<5); //toggle bit
delay_timer0();
}
}
解决方法
我敢打赌这是一个延迟功能问题
尝试
#include <util/delay.h>
/* .... */
while(1){
PORTB = PORTB ^ (1<<5); //toggle bit
delay_ms(500);
}
,
我发现了错误。我曾与tinkercad合作,但在该模拟器中计时器不起作用。但是我已经在实际环境中配置了它,并且效果很好。
感谢所有帮助过我的人。