_delay_ms no funciona con ATmega 16/32

2

Compré un microcontrolador ATMEGA 16 y modifiqué la configuración de los bits de los fusibles y utilicé un reloj RC interno calibrado con 1000000. Cambios realizados en make file y F_CPU. Pero no hace nada.

Programa para el parpadeo de LED

#define F_CPU 1000000UL
int main(void)
 {
   DDRC=0xFF;

  while(1)
       {
        PORTC=0xFF;
   _delay_ms(1000);
    PORTC=0x00;
    _delay_ms(1000);

    }
 }

Al mismo tiempo, el siguiente programa funciona bien . Puede ayudarme alguien, por favor, es urgente ... ¿Olvidé algo que hacer ... . Estos problemas son los mismos al usar un cristal externo de 16Mhz.    Programa para LED que brilla intensamente.

#define F_CPU 1000000UL


int main(void)
 {
   DDRC=0xFF;

  while(1)
       {
        PORTC=0xFF;
   }
 }
    
pregunta Divyansh

1 respuesta

4

Me sorprende que esto se compile, ya que faltan dos #include :

#define F_CPU 1000000UL

#include <avr/io.h>
#include <util/delay.h>

int main(void)
 {
   DDRC=0xFF;

  while(1)
       {
        PORTC=0xFF;
   _delay_ms(1000);
    PORTC=0x00;
    _delay_ms(1000);

    }
 }

Tenga en cuenta que F_CPU debe definirse antes de #include , que se puede hacer en el código como se muestra o en el makefile .

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas