Hallo! ich habe aus dem Tutorial den Quellcode für UART, Sender ohne Änderung in mein ASM übernommen. Ich benutze einen Mega8515. Kompilieren ohne Fehler. Aber wenn ich z.B. HTerm starte kommt nur Müll an (siehe Bild). Also keine Zeichenfolge "Test". Hab schon den ganzen Abend das Problem. Auf dem Stk500 ist ein 4MHz Quarz , Jumper auch richtig. Board-Takt softwaremäßig gestoppt. Sollt also gehen. Kein Plan woran das liegt. Jemand eine Idee?
aha, ich dahcte es mir..die Fuses. Hab noch nie mit Fuses gespielt, da vorher nen 90S8515 hatte, der hatte sowas nicht. Also ich hab nen 4MHz HC18 Quarz auf den vorgesehenen Sockel gesteckt (STK500). Im Fuses-Menü sind ja elend viele Möglichkeiten. Laut Datenblatt S.35 müsste ich einstellen: CKSEL3..1=111, CKOPT=1 Nur ich find dieses CKOPT im Fuses-Menü nirgends. Steht nur was von Low Frequency, Medium Freq., High Freq. ja welcher ist denn nun 4MHz ?
habs grad gefunden.. die vorletzte Einstellung ist es. Mal ne andere Frage wieso die Zeile: sbis UCSRA,UDRE ; Warten bis UDR für das nächste ; Byte bereit ist und nicht so: sbis UCSRA,TXC ; Warten bis UDR für das nächste ; Byte bereit ist ?
Das TXC-Bit gibt an, dass das Sendeschieberegister leer ist, also keine Daten mehr auf der "Strecke" sind. Ist dies der Fall, nimmt sich die UART - falls vorhanden - das Datenbyte aus dem UDR und versendet dieses. Der Sinn des Ganzen ist der, dass Du auch dann einen zusammenhängenden Datenstrom erhältst, wenn Du das UDRE Bit nicht mit 100% CPU-Auslastung pollst. Du musst also nur mit der Bytedatenrate pollen um trotzdem maximale Datengeschwindigkeit zu erhalten. Im Interruptbetrieb verschwindet mit Interrupt auf UDRE die Interrupt-Latenzzeit zwischen den Datenbytes. Umgekehrt kannst Du mit dem TXC-Bit aber herausfinden, ob eine Datenbyte physikalisch versendet wurde. Grüße Christian
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.