Tengo el siguiente código de parpadeo ejecutándose en un attiny24 con los fusibles predeterminados, a través de Atmel Studio 6. Si configuro DDRA en cualquier combinación de 5 pines (o establezco DDRA en 0xFF y luego parpadeo, configurando PORTA en cualquier combinación de 5 pines) entonces funciona, pero tan pronto como uso 6 pines, se restablece. El interruptor PORTB.0 al inicio muestra el restablecimiento.
La causa habitual de este tipo de comportamiento es el suministro o el consumo excesivo de la corriente en las salidas, sin embargo, esto sucede cuando las salidas se dejan abiertas, no hay nada adjunto, por lo que no puedo ver su causa. ¿Alguna sugerencia?
int main(void)
{
// DEBUG: Toggle PORTB.0 to demonstrate AVR reset.
DDRB = 0x01; PORTB ^= 0x01; _delay_ms(10); PORTB ^= 0x01;
// Output 6 pins at once (change to 5 pins and AVR does not reset).
DDRA = 0b00111111;
for (;;)
{
PORTA = 0xff;
_delay_ms(1000);
PORTA = 0x00;
_delay_ms(1000);
}
}
He probado los sospechosos habituales, la fuente de alimentación, la ejecución con AVRISP desconectado y asegurando que hay un límite entre + VE y GND. También probé la configuración de pines individualmente y tan pronto como llega a 6 se restablece.