Estoy haciendo un proyecto simple usando el microchip ATmega8. Subí este código al AVR:
#include avr/io.h
#include util/delay.h
int main(void) {
DDRD = 0b10000000;
DDRD = 0b01000000;
while(1) {
PORTD = 0b10000000;
_delay_ms(100);
PORTD = 0b00000000;
PORTD = 0b01000000;
_delay_ms(100);
PORTD = 0b00000000;
}
return 1;
}
Básicamente, enciende y apaga dos LED diferentes que están conectados al pin (AIN0) PD6
y (AIN1) PD7
.
Cuando el sistema está funcionando, el AVR puede suministrar energía a solo uno de los LED correctamente. Otro LED tiene un brillo significativamente bajo. Cuando mido la tensión entregada al LED brillante que está conectado a PD6
, toma aproximadamente 2.3 voltios, y el regulador que está conectado a PD7
toma aproximadamente 1.2 voltios.
¿Por qué tengo este problema? ¿Se trata del código que escribí o se trata del chip en sí? Por otro lado, cuando enciendo solo uno de los LED en PD6
o PD7
con un código simple, funciona bien. Así que no hay problema con los pines, conexiones o LED que utilizo. (¡Tampoco pude copiar y pegar aquí correctamente los nombres de los paquetes! Por lo tanto, también es correcto).