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.