En el simulador da bien, aunque no sé lo que tienes en "cambioled". Lo único que veo es que el programa, como está, envía a los puertos una señal siempre alta, nunca la cambia. Esto es: aunque salte el temporizador, haga lo que haga la "cambioled",, cuando acabe vuelve al "loop0A", que pone todo unos a piñón fijo y los saca por los puertos A y D, así que no se verá cambio.
¿Lo compruebas "a ojo" o con osciloscopio?
Prueba con
...
ldi temp4,0xff |Un nuevo registro
loop0A:
out PORTA,temp4 ; sacamos lo que tenga temp4
out PORTD,temp4 ; "" ""
rjmp loop0A
cambioled:
ldi temp4, (temp4 Xor 0xFF) ; no sé la sintaxis, la cosa es que cargue alternativamente FF y 00
Esto sí que hace bascular la salida.
Intenta mirar la salida con osciloscopio.
Saludos!
|