Postat: 22 april 2005, 17:20:32
Det här ska inte ligga i Transmit:
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:
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:
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.
Kod: Markera allt
ldi r16, 0b00000000
out DDRD, r16 ;set as input
ldi r16, $ff
out PortD, r16 ;activate pullup
Ta bort dom här raderna:
Kod: Markera allt
Wait:
sbic PinD, 2
rjmp Wait
Kod: Markera allt
; Wait for data to be received
sbis UCSRA, RXC
rjmp USART_Receive
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.
