delay_ms () no funciona en Atmega 16A PU 1703

-1

Estoy usando un Atmega 16A PU 1703 para parpadear un LED. Estoy utilizando CV AVR IDE para escribir y compilar código en hexadecimal y usar progisp para cargar el archivo hex en el microcontrolador.

El problema es que el LED no parpadea. Se mantiene resplandeciente.

He puesto el reloj a 8MHz.  Aquí está el código generado por CV AVR y aquí está la lógica principal del programa:

while (1)
  {
  // Place your code here   
    PORTA.0=1;  
    delay_ms(1000);
    PORTA.0=0;
    delay_ms(1000);
  }

PD: soy un principiante en la programación de un microcontrolador, así que chicos, por favor, sean amables conmigo.

¿Hay algún problema con los bits de fusible? Usé los fusibles H y L como D9 y E4 respectivamente

    
pregunta Syed Souban

2 respuestas

1

No hiciste una pregunta, pero supongo que te preguntarás por qué el LED parpadeante no parpadea.

Establece el bit de puerto alto, espera un segundo y luego lo configura bajo. Luego el bucle se repite, al instante vuelve a establecer el bit alto.

Intente agregar otro delay_ms (1000) después de PORTA.0 = 0 para que tenga un poco de tiempo para ver que el bit del puerto está BAJO.

    
respondido por el Peter Bennett
0

Intente usar LATA.0 en lugar de PORTA.0. Podría ser un problema con la lectura-modificación-escritura.

Si eso no funciona, deberá conectar un analizador lógico o un osciloscopio (lo que tenga disponible) para ver si el pin está alternando. También puedes medir el retraso de esa manera.

    
respondido por el Catsunami

Lea otras preguntas en las etiquetas