Sida 3 av 3

Postat: 22 april 2005, 17:20:32
av cykze
Det här ska inte ligga i Transmit:

Kod: Markera allt

ldi r16, 0b00000000
out DDRD, r16 ;set as input
ldi r16, $ff
out PortD, r16 ;activate pullup
Inställningar av portarna brukar vara det första man gör när AVR:en startar. Så lägg det under reset: någonstans.


Ta bort dom här raderna:

Kod: Markera allt

Wait:
sbic PinD, 2
rjmp Wait
Du har hamnat i Transmit just därför att PD2 (INT0) är låg. Så den kollen behövs inte. Samma sak gäller det här:

Kod: Markera allt

 ; Wait for data to be received
sbis UCSRA, RXC
rjmp USART_Receive
Du har ju hamnat i Receive för att det finns ny data från USART:en att hämta (dvs RXC-biten satt). Så du behöver inte kolla det.

Töm huvudloopen på all kod (sleep-grejjerna) till vidare så att det inte är det som ställer till det.

Kanske är något mer också. Asm är inte min starka sida direkt. :)