Hallo zusammen
ich bekomme bei meinen ATMEGA 16 den USART nicht richtig zum laufen.
Das Beispiel war ursprünglich für den 2313 gedacht und funktionierte
wunderbar(mit Terminalprog tty). Habe für den ATMEGA 16 alles
entsprechend abgeändert. Nach Reset oder Start soll bei Druck auf
Taster 2 des STK 500 ein "Z" gesendet werden. Es werden aber
Leerzeichen gesendet(2 Stück).
Wenn Ihr auch keinen Fehler finden könnt, probiert das Prog bitte mal
bei eurem ATMEGA 16 aus.
Einstellungen: 8 Datenbits,kein Paritätsbit,1 Stopbit
hier noch mal die Initialisierung:
;Subroutine hdw_init
;Die I/O-Ports, und der USART werden initialisiert
;In DDRx 0 --> Input 1 --> Output
hdw_init: ldi w,0b11111111 ;Initialisiere Port D
out PORTD,w
ldi w,0b11110010 ;Datenrichtung Port D
out DDRD,w
ldi w,0b11111111 ;Initialisiere Port B
out PORTB,w
ldi w,0b11111111 ;Datenrichtung Port B
out DDRB,w
;Ab hier wird das USART initialisiert
uart_init:
ldi w,high(baudkonst)
out UBRRH,w
ldi w,low(baudkonst) ;Baudrate laden
out UBRRL,w
ldi w,0b00100000 ;UDRE leer
out UCSRA,w
ldi w,0b10011000 ;RXCIE,RXEN,TXEN ->1,UCSZ2->0
out UCSRB,w
ldi w,0b10000110 ;URSEL,8bit Datenwort(UCSZ1,UCSZ2 auf 1)
out UCSRC,w
sei ;Alle Ints freigeben
ret
schonmal vielen Dank
mfg
Rob
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.