Estoy aprendiendo a programar MCU con c
Estoy usando atmel studio 7, averdude, USBasp y Atmega16a
este es mi código
#define F_CPU 1000000
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRA = 0xff;
DDRC = 0xff;
while (1) {
for (uint8_t i = 8; i >= 0; i--) {
PORTA = (1 << i);
_delay_ms(100);
}
PORTC = 1;
_delay_ms(1500);
}
return (0);
}
el bucle for nunca terminó y cuando alcanza i=0
, el primer LED en PORTA
permanece encendido durante unos 14 segundos y luego se apaga durante aproximadamente el mismo tiempo y luego el bucle for comienza nuevamente sin llegar a
PORTC =1;
_delay_ms(1500);
cuando uso int
en lugar de uint8_t
funciona bien
¿Alguien puede explicar por qué sucede esto?