Ich hab gerade ein ähnliches problem. ich versuche mit nem M32 an nen M8 Befehle zu senden. Diese werden aber nicht richtig ausgeführt. So soll er bei "vor" den Motor langsam beschleunigen, ich hör aber nur ein Klicken. Wenn ich dem m8 einfah hart eincode , dass der empfangene text "vor" ist (einfach input text durch text = "vor" ersetzt), dann läuft alles.
der m32 hat soft-uart, der m8 halt hardware-uart. Der m32 rennt mit 16 Mhz, der m8 mit 1Mhz, beide sind auf 9600 eingestellt und der m32 auf 8m1, da ich nicht wusste ,wo ich das beim m8 einstellen muss.
Code:$regfile = "m8def.dat" $crystal = 1000000 $baud = 9600 Dim Text As String * 16 Dim Speed As Byte Config Portc.0 = Output Config Portc.1 = Output Config Portc.2 = Output Config Portc.3 = Output A Alias Portc.0 B Alias Portc.1 C Alias Portc.2 D Alias Portc.3 Config Portb.1 = Output Config Portb.2 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Speed = 50 Do 'Input Text hab ich wie beschrieben auskommentiert, stattdessen halt text = "vor" geschrieben Text = "Vor" If Text = "Vor" Then A = 0 B = 1 C = 0 D = 1 Speed = 50 Do Compare1a = Speed Compare1b = Speed Waitms 4 Speed = Speed + 1 Loop Until Speed = 150 End If If Text = "Rueck" Then A = 1 B = 0 C = 1 D = 0 Do Compare1a = Speed Compare1b = Speed Waitms 2 Speed = Speed - 1 Loop Until Speed = 150 Waitms 1000 End If If Text = "Links" Then A = 1 B = 0 C = 0 D = 1 End If If Text = "Rechts" Then A = 0 B = 1 C = 1 D = 0 End If If Text = "Stop" Then A = 0 B = 0 C = 0 D = 0 End If If Text = "Kurverechts" Then A = 0 B = 1 C = 0 D = 1 Do Compare1a = Speed Waitms 2 Speed = Speed - 1 Loop Until Speed = 50 End If If Text = "Kurvelinks" Then A = 0 B = 1 C = 0 D = 1 Do Compare1b = Speed Waitms 2 Speed = Speed - 1 Loop Until Speed = 50 End If Loop EndCode:$regfile = "m32def.dat" $crystal = 16000000 Config Portc.1 = Output Config Portd.2 = Output Config Portd.7 = Output Config Portd.6 = Output Open "comd.7:9600,8,n,1" For Input As #1 Open "comd.6:9600,8,n,1" For Output As #2 Dim Entfernung As Integer Dim Text As String * 16 Text = "Vor" Do Waitms 500 Portc.1 = 1 Waitms 500 Portc.1 = 0 Print #2 , "Vor" Loop End







Zitieren

Lesezeichen