Hallo Leute, mein BTM-222 übernimmt bei mir die Kommunikation vom ATMega128 zum PC(LabVIEW). Das Senden funktioniert einwandfrei, nur beim Empfangen habe ich Probleme. Zum Testen habe ich jetzt mal von LabVIEW ein 's' gesendet und wenn es beim µC ankommt soll er das empfangene Zeichen zurücksenden. Es kommen aber irgendwelche willkürlichen Zeichen am PC an. Zur Kontrolle habe ich noch jedesmal den Dezimalwert von 100 bei jedem Rücksendevorgang übertragen. Dieser Dezimalwert von 100 kommt immer richtig an. Also kann es ja nicht an einer falsche Baudrate liegen. Was kommt noch als Ursache für diesen Übertragungsfehler in Frage? Gruß Hans
Kannst du mal (mit dem Debugger) schauen was für ein Zeichen am uC ankommt?
Martin S. schrieb: > Kannst du mal (mit dem Debugger) schauen was für ein Zeichen am uC > ankommt? Leider habe ich keinen Debugger zur Verfügung! Alex W. schrieb: > Empfang invertieren! Das empfangene Byte invertieren? Was soll das bringen?
Invertieren wird nicht viel bringen, wenn willkürliche Zeichen am Computer ankommen. Auch kein Oszi oder Logic Analyzer zur Hand?
Martin S. schrieb: > Invertieren wird nicht viel bringen, wenn willkürliche Zeichen am > Computer ankommen. > > Auch kein Oszi oder Logic Analyzer zur Hand? Ja doch ein Oszi hätte ich da, dann werde ich mir damit mal angucken wie das empfangen Zeichen am µC aussieht.
Womit taktest Du den Mikrocontroller? Hoffentlich nicht mit einem R/C Oszillator.
Hans schrieb: > Also kann es ja nicht an einer falsche Baudrate liegen. UART ist nicht Baudrate allein. Was ist mit Parity-Bit, Anzahl Stopbits ? Überall gleich? (Überall=PC, BTM-222, AVR) Und hast du mal vor dem Lesen den UART-Datenregisters die Fehlerbits ( Parity, Overrun, Frame-Error ) abgefragt? Vllt. geben die dir auch einen Hinweis. Gruss, Rainer
:
Bearbeitet durch User
Hans schrieb: > Dieser Dezimalwert von 100 kommt immer richtig an. > Also kann es ja nicht an einer falsche Baudrate liegen. Also eigentlich ist so ein Dezimalwert ja nichts anderes. Dieser Int oder Char - Wert wird in einen String umgewandelt und dann jedes Zeichen des Strings übertragen. SG, nicart
Danke für eure Hilfe! Der Fehler lag beim Pegelwandler der nicht richtig funktionierte...am BTM-222 kam das 's' immer richtig an.
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.