Hi, ich hab mit BASCOM ein Programm geschrieben mit dem ich Servos vom PC aus steuern kann ( via RS232 ) , das hat auch anfangs gut funktioniert , aber ganz plötzlich geht garnichts mehr. Ich hab einen Fehler gefunden , an dem ich aber verzweifel : Ich sende immer einen String : z.B.: "1 1000" (Servo 1 , Wert 1000) das lass ich dann splitten und verarbeiten. Ich lese den UART Buffer mit dem INPUT Befehl aus, lass ich ihn mir nun aber printen zeigt er mir immer ein Symbol an erster stelle an , ein Viereck oder ein Smiley =/. Quelltext : Dim input_value As String*8 'maximal "12 1000" Dim value_array(3) As String*4 Dim Akt As Byte Dim Takt As Byte Function servo_pc() As Byte Local X As Byte if ischarwaiting() = 1 then INPUT input_value Print input_value 'Nur jetzt zur Überprüfung X = Split(input_value;value_array(1), " ") servo_pc = 1 else servo_pc = 0 endif If X >= 2 Akt = Val(value_array(1) Takt = Val(value_array(2) X = 0 endif End Function Kann mir jemand sagen woran das liegen kann ? mfg Moritz
Der Input Befehl an der Stelle ist eh Murks. Für Zeichenempfang gibts den URXC Interrupt. Wenn falsche Zeichen empfangen werden liegt das zu 99% daran, dass die Baudrate nicht genau stimmt ... vermutlich nen Quarz mit "runder Taktung" 8MHz 4MHz 1MHz oder dergleichen. Es gibt Baudratenquarze die für die UART-Kommunikation besser passen. Suchbegriff Baudratenquarz
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.