Hallo! Ich habe folgendes Problem mit der RS232 Schnittstelle (PIC 16F88): Obwohl meines Wissens nach der Assemblercode stimmen sollte, zeigt das Oszi (angehängt an den TX-Pin) rein gar nichts an. Wird das Programm gestartet, tut sich auch nichts. Im Debugmodus (Microchip ICD 2) kann ich mit der Watchfunktion von MPLab den gewollten Wert im TXREG sehen - jedoch nur nach dem Stoppen des debuggens. Könnte bitte jemand den Assemblercode im Anhang überprüfen?! Ich bin schon seit längerer Zeit auf der Suche nach einer Lösung, jedoch habe ich bis jetzt keinen Ansatz gefunden... Mit freundlichen Grüßen Mario
set_tx nop banksel TXSTA bsf TXSTA,5 ;activate transmission movlw 0x55 movwf TXREG ;load value to transmit Reg Was glaubst du macht dein Programm ab hier ? END
Meiner Meinung nach wird hier das transmit enable Bit gesetzt (SPEN), der Wert ins TXREG geschrieben und dann müsste es beendet werden... Vll hab ich mich auch fatal geirrt... lg Mario
jedoch, wenn ich vor dem END zB. goto set_tx schreibe, funktioniert es trotzdem nicht. Irgendwie werden die Daten nicht übernommen... lg Mario
Hast du dir die Compiler-Warnung mal angeschaut? Bei deinem Programm stimmt wohl was mit der Bankumschaltung nicht. TXREG ist in bank0. Bei der Stelle wo du den Wert in TXREG schreibst bist du aber auf bank1.
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.