Gast
#272149
Hi Leute, ich versuche eine UART per Software zu programmieren (CC5X Compiler) aber irgentwie funktioniert das Ganze nicht. Nachdem ich nun 3 Tage an dem Problem gewerkelt ahbe weiss ich nun wirklich nciht mehr weiter, aber vielleicht kann mir jemand helfen. Zum Ablauf: RX-Pin ist PORTB.0 - Warte bis eine fallende Flanke am RX-Pin erkannt wird (= Startbit) - Starte dann Timer0 mit der 1,5 fachen Zeit der BAUD-Rate - Wenn Timer0 dann einen IRQ auslöst, müsste ich mitten im ersten Bit sein - Setze dann Timer0 auf die Zeit die ein Bit bei 19200 bps braucht - Shifte dann jeweil beim Timer IRQ die Bits rein - Überprüfe das 9.Bit auf Stopbit - Schalte den Timer aus, und warte wieder auf eine fallende Flanke um neu zu beginnen. Wenn ich das ganze Teste bekomme ich auch "ähnliche" Werte ausgegeben. Allerdings ist meist das Byte verschoben, so daß das MSB fehlt. Ich habe das Gefühl das meine errechneten Timer-Werte nicht passen und das ganze unsynchron läuft. Vielleicht kann jemand mal nachschauen. (Der Quelltext ist strukturiert und kommentiert!) Danke im Voraus!