通过基本的C编程在arduino uno中导致切换-它不切换并且始终处于状态,为什么?

问题描述

它不切换并且始终处于状态,为什么?我已经尝试了很多次。无法确定原因

#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合作,但在该模拟器中计时器不起作用。但是我已经在实际环境中配置了它,并且效果很好。

感谢所有帮助过我的人。