Hi ist mir fast etwas peinlich aber ich hab ein Problem mit dem USART des Mega8 und bin langsam am verzweifeln weil ich einfach keine Idee mehr hab woran es liegen könnte: Problembeschreibung: Ich kann mit dem Mega8 über USART senden (konstante Zeichen) die auch ankommen aber nicht im Richtigen format. Irgendwas ist da nicht in Ordnung mit der Parität und ich bekomme von den Terminalprogrammen Fehler in der Übertragung angezeigt. Trotzdem kann ich die Zeichen lesen bzw wenn ich Parity auf Space stelle bekomme ich alles Richtig ohne Fehler. Empfangen vom Pc aus geht auch, wenn ich keinen Interrupt verwende. Also dauernd Statusbit überprüfen und dann das Empfangsregister zurücksenden geht ohne Probleme, wenn ich aber den Interrupt verwende geht er wohl nich in die ISR - Warum weiß ich nicht. Im Code ist sowohl der RX-Interrupt enabled, sowie der globale ( sei(); ). Den nicht funktionierenden Code stelle ich in den Anhang. Irgendetwas simples muss es eigendlich sein da ich früher auch Programme hatte die vollständig mit Interrupts gingen. Zur Hardware: Ich hab mir für meinen Laptop einen USB-RS232 (USB-FT232RL-MAX232-STK500) gebaut der mit dem STK500 auch funktioniert. Ich kann alle Funktionen des STK nutzen, weshalb ich den Wandler für in Ordnung halte. Das Programm hab ich sowohl mit diesem Wandler als auch mit einem normalen PC mit RS232 Schnittstelle ausprobiert. Beide zeigen die selben "Probleme". Der µC lauft mit einem externen Quarz auf dem STK500 (12Mhz). Vorher hatte ich es mit dem STK500 Takt versucht (3686400 Hz). Die Fuses sind deffinitiv auf externenm Takt (längste Verzögerung). Hab es sogar mal mit dem internen probiert, womit es noch weniger ging. Spannung ist 5V und der Mega8 ist ein 16PU. Hab auch einen neuen probiert. ( Fuses auch wieder angepasst ) Mir gehen leider die Ideen aus wo ein Fehler sein könnte. Ich hoffe ich seh den Wald nur vor lauter Bäumen nicht. Da USART mit Interupt für meine nächsten Programme schöner sind als das Prüfen in der main. Ich hoffe jemand kann mir helfen oder auch nur nen Hinweis geben was ich noch probieren könnte. Falls irgend eine Info fehlt bitte sagen. Gruß ErgoProxy
(Vielen Dank)^googleplexplex Ich weiß nicht wie ich so doof sein konnte. Kein wunder das das macht was es will, wenn ich die 1 ned an sechste Stelle schiebe sondern eine 6 um eine Stelle ins Register Gruß ErgoProxy der seine Augen wohl mal besser ne zeitlang schließt
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.