Hi, ich hab schon etwas Erfahrung in Sachen RS232 und AVR, bis jetzt lief es mit der INITIALSIERUNG immer so wie man es erwartet hat. Nun habe ich einen ATmega16 zum spielen hier und wollte bei dem auch mal die RS232 Sache nutzen. Ich bekomme es einfach nicht gebacken das er das Shared Register UBRRH/UCRSC richtig beschreibt. Im Simulator tut sich nicht's wenn man nach "out UCSRC,r16" reinschaut. Ist das normal? Wie macht man das richtig. Das Beispiel ist aus dem Datenblatt, die werden da doch kein Blödsinn reinschreiben?!? Das entscheidene ist ja wohl das man das URSEL Bit setzt wenn man auf UCSRC schreiben möchte, das klappt aber nicht :( USART_Init: ; Set baud rate 19200@16MHz ldi r17,0 ldi r16,103 out UBRRH, r17 out UBRRL, r16 ; Enable receiver and transmitter ldi r16, (1<<RXEN)|(1<<TXEN) out UCSRB,r16 ; Set frame format: 8data, 2stop bit ldi r16, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0) out UCSRC,r16 ret Ich glaub das das der Grund ist warum ich nichts empfange und nichts senden kann... Für jeden Tip dankbar, MfG AVRli
Schau mal in der AVRStudio-Hilfe bei "AVR Tools User Guide | Simulator | Known Issues". Afair gibt es im Simulator tatsächlich ein Problem mit UCSRC/UBRRH.
Zitat aus der Hilfe: "The USART's UBRRH and UCSRC registers share the same I/O address. Writing to one of the registers will cause both registers to contain the new value, regardless of the value of URSEL. Reading these registers do not work as described in the datasheet."
Hallo johnny.m, ja ok, soweit hab ich nun nicht gelesen, in der Tat, es funktioniert alles. Daten werden ausgetauscht usw. Ich hatte einen Dreher auf dem Board, RxD,TxD... das war der Grund warum nichts raus und rein ging logisch. ;-) Ich habe die Bits nun so gesetzt wie oben beschrieben, auch wenn der Simulator "Müll" anzeigt, der µC ackert wohl richtig. Danke! MfG AVRli
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.