Hallo, ich hoffe, mir kann einer helfen. Mein UART will nicht so wie ich. Ich habe einen AT MEGA 128 und einen anderen Controller daran angeschlossen, Rx und Tx halt gekreuzt. Der sendet seine Daten mit 9600 Baud, 1 Stopp-Bit, kein Handshaking, genauso habe ich es im Mega eingestellt. Dann habe ich eine Routine, die beim Auslösen des Interrupts den Kram an einen schon vorhandenen String klatscht. Alle paar Sekunden gibt mir der Mega den String auf dem LCD aus und leert ihn wieder. In der Theorie und im Simulator funktioniert das auch. Nicht aber in der Praxis! Beim allerersten Übertragen werden die ersten beiden Zeichen korrekt übertragen, danach spuckt mir der Mega nur noch kryptische Zeichen aus. Allerdings sind es immer die gleichen Zeichen, völlig konstant und reproduzierbar. Der Mega läuft intern mit 4 MegaHerz (durch Setzen der Fusebits), das stimmt auch. Ich habe im Programm auch mal die Taktfrequenz in den Grenzen der Toleranz variiert, aber das brachte auch nix. Hat jemand Rat? Grüße an alle, Stephan
Hallo, nachdem ich nun alle Taktfrequenzen durch habe, stelle ich fest, dass es gar nicht daran liegt. Der zweite Baustein, den ich leider nicht beeinflussen kann, gibt sein Signal invertiert aus! Kann man das per Software umdrehen? Grüße an alle, Stephan
Hi Stephan, Invertierung: USART0_RX_complete: in r16,UDR0 ;read value ldi r17,0xFF eor r17,r16 ;r17 enthält das Ergebnis reti Sebastian
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.