Forum: Mikrocontroller und Digitale Elektronik BASCOM INPUT-Befehl Fehler


von Moritz (Gast)


Lesenswert?

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

von weinbauer (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.