Hi, habe ein anderes tutorial mal umgeschrieben, mmmh ging auch nicht :( ------------------------------------------------------------- .include "m128def.inc" .def temp = R16 ldi R16, RAMEND out SPL, R16 ; Stackpointer initialisieren sbi UCSR0B,TXEN0 ; UART TX aktivieren ldi temp,16000000/(19200*16)-1 ; Baudrate 19200 einstellen out UBRR0L,temp start: ldi ZL, LOW(text*2) ; Adresse des Strings in den ldi ZH, HIGH(text*2) ; Z-Pointer laden rcall print ; Unterfunktion print aufrufen ldi R16, 10 ; die Bytes 10 und 13 senden rcall sendbyte ; (Zeilenumbruch im Terminal) ldi R16, 13 rcall sendbyte rjmp start ; das Ganze wiederholen ; print: sendet die durch den Z-Pointer adressierte Zeichenkette print: lpm ; Erstes Byte des Strings nach R0 lesen tst R0 ; R0 auf 0 testen breq print_end ; wenn 0, dann zu print_end mov r16, r0 ; Inhalt von R0 nach R16 kopieren rcall sendbyte ; UART-Sendefunktion aufrufen adiw ZL, 1 ; Adresse des Z-Pointers um 1 erhöhen rjmp print ; wieder zum Anfang springen print_end: ret ; sendbyte: sendet das Byte aus R16 über das UART sendbyte: sbis UCSR0A, UDRE0 ; warten bis das UART bereit ist rjmp sendbyte out UDR0, R16 ret text: .db "AVR-Assembler ist ganz einfach",0 ; Stringkonstante, durch eine 0 abgeschlossen ------------------------------------------------------------- es müsste doch beim debuggen immer im i/o register UDR0 das Zeichen drin stehen das auch an die rs-232 ausgegeben wird. Oder ? mein atmega128 läuft auf 16MHz mit 19200baud 8,N,1 ! kann mir jemand sagen ob dies programm richtig geschrieben ist ? mit --> sts UDR0, R16 geht es auch nicht ?! im i/o register UDR0 sthet imm nur die 0 ? mmh MfG Hans22
Ich habe den 90s8535..... der Test im Anhang funktioniert bei mir. gibt einen ADC-Wert aus. Kannst ja den ganzen ADC-, PWM-kram und die Umrechnungen weglassen und nur das Senden des Textes drin lassen. Sollte dann auch noch Funktioniere....;-)
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.