Hallo Leute,
ich kann keine Daten schicken,hier ist der Code , was mache ich
falsch!!!
.include "m88def.inc"
.def temp = R16
.equ CLOCK = 10000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
.cseg
.org 0x000
rjmp main
main: ldi r16, LOW(RAMEND) ;Stack Pointer to top of RAM
out SPL, r16
ldi r16, HIGH(RAMEND)
out SPH, r16
; Baudrate setup
ldi temp, LOW(UBRRVAL)
sts UBRR0L, temp
ldi temp, HIGH(UBRRVAL)
sts UBRR0H, temp
; Frame-Format: 8 Bit
ldi temp, 0x06
sts UCSR0C, temp
ldi temp,0x98
sts UCSR0B,temp ; Interrupt by Receive / RX (Receive) and TX
(Transmit) activate
ldi r21,0x20
LogoATMEL: ldi ZL,LOW(2*logo) ; gleich nachdem Einshalten "Test"
anzeigen
ldi ZH,HIGH(2*logo)
ldi r17,0x04
ldi temp, 10
rcall serout
ok: lpm r16,z
adiw ZL,1
rcall serout
dec r17
cpse r17,r20
ldi temp, 10
rcall serout
ldi temp, 13
rcall serout
loop:
rjmp loop
serout: lds r18,UCSR0A
cpse r18,r21 ;Warten bis UDR für das nächste Byte bereit ist
rjmp serout
out UDR0,temp ;Daten anzeigen
ret
logo:
.db"Test",0
Gibt es andere Befehle oder was ist falsch, ich habe schon alles
probiert , und nichts kommt an(Ich benutze den Hyper Terminal)!
danke
Hallo Daniel Versuchs mal mit: serout: lds r18,UCSR0A sbrs r18,5 ;Warten bis UDR für das nächste Byte bereit rjmp serout sts UDR0,temp ;Daten anzeigen ret UDR0 kann nicht mit 'out' beschrieben werden. Bei den Mega X8 muss man höllisch aufpassen ob die Register nun mit I/O oder sts/lds anzuspechen sind. Gruss Andi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.