Hallo
Mein Controller sollte einen Motor schalten, je nachdem was für ein Zeichen er bekommt, genauer gesagt sollte er jeweils anders reagieren, wenn er ein "a" oder ein "A" empfängt und den Inhalt des nächsten Zeichens, dass er empfängt an eine Variable weitergeben.
Den Inhalt zweiten zeichens wollte ich als Byte Wert für die PWM auflösung nehmen.
Das nur zur Erklärung des Programms, das Problem liegt in einem anderen Teil.
Ich habe den Print-Befehl ein einigen Stellen eingebaut um zu gucken, wo das Programm landet. Zu erst fehlte das ' Print "Lebenszeichen2" ' aus der zweiten Zeile, in diesem Fall konnte ich im (Bascom)-Terminal keine reaktion sehen, auch wenn ich versucht hab irgendein Zeichen zu senden.
Nach dem einfügen der Zeile bekam ich:
was sich laufend wiederholte. Also muss das senden meiner Nachricht "Lebenszeichen2" das "Usr.rxc" gefüllt haben, das dann auch immer gefüllt blieb/neu gefüllt wurde. Ich hatte angenommen "Usr.rxc" wäre nur zum empfangen, oder war das in meinem Beispiel falsch?Lebenszeichen2
Lebenszeichen
128
da war was
Der Quellcode ist unten angefügt (ausschnitsweise).
vielen Dank schon mal, mfG
Code:Do Print "Lebenszeichen2" 'uart IN If Usr.rxc = 1 Then 'Wenn Byte empfangen... I = Udr 'Byte aus UART auslesen Print "Lebenszeichen" Print I Select Case i Case "A" 'Motor 1 vowraerts Portc.1 = 0 Portc.2 = 1 Mo1 = 1 Print "Das A ist angekommen" Case "a" 'Motor 1 rueckwaerts Portc.2 = 0 Portc.1 = 1 Mo1 = 1 Print "Das a ist angekommen" Case Else Print "da war was" If Mo1 = 1 Then Mo1s = I Mo1 = 0 End If If Mo2 = 1 Then Mo2s = I Mo2 = 0 End If If Mo3 = 1 Then Mo3s = I Mo3 = 0 End If End Select End If Ocr2 = Mo1s Loop
Lesezeichen