Hab mir nochmal alles genau angeschaut Baudraten alles stimmt genau überein..
Hallo,
Für die Fernsteuerung meines Robos nutz ichn Avisaro Wlan modul. Zur Steuerung sende ich einfache Ascii codes übers terminal was mit ner echten seriellen verbindung auch klappt, Nur übers Wlan passiert nach dem 1 Kommando,welches noch verarbeitet wird gar nichts mehr.
Wordran kann das liegen?
Gruß Michael
Hab mir nochmal alles genau angeschaut Baudraten alles stimmt genau überein..
zu dem modul kann ich mal rein garnichts sagen, aber kannst du mal versuchen ob du ne schleife machen kannst, also TX leitung vom PC an modul 1 (sender) und RX an modul 2 (den empfänger)
wenn du dann alles was du tippst, auch im terminal wiedergegeben wird, liegts vll. am programm (das timing im programm kann gut und gerne durch blockweises schreiben des moduls durcheinandergebracht werden) ... eventuell im code ne fehlerausgabe einbauen, die bei kommunikations fehlern um hilfe ruft
Ich hab hab ja nur 1 modul, auf der anderen seite läuft ein virtueller com port.
hier mal das programm:
Code:$regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 16000000 $baud = 9600 Enable Interrupts Dim A As Byte Config Pinc.6 = Output 'Linker Motor Kanal 1 Config Pinc.7 = Output 'Linker Motor Kanal 2 Config Pind.4 = Output 'Linker Motor PWM Config Pinb.0 = Output 'Rechter Motor Kanal 1 Config Pinb.1 = Output 'Rechter Motor Kanal 2 Config Pind.5 = Output 'Rechter Motor PWM Config Pina.0 = Output 'LenkServo kalibrieren Config Servos = 1 , Servo1 = Porta.0 , Reload = 10 'LenkServo anzahl 4 Servo(1) = 115 'LenkServo mittig ausrichten Do A = Inkey() If A > 0 Then Select Case A Case 56 'Das ist der ASCII Code für Taste "8" Sound Portd.7 , 400 , 450 Print "Schnell vorwärts" Portc.6 = 1 'bestimmt Richtung Portc.7 = 0 'bestimmt Richtung Portd.4 = 1 'Linker Motor EIN Case 50 'Das ist der ASCII Code für Taste "2" Sound Portd.7 , 400 , 650 Print "Schnell rückwärts" Portc.6 = 0 'bestimmt Richtung Portc.7 = 1 'bestimmt Richtung Portd.4 = 1 'Linker Motor EIN Case 53 'Das ist der ASCII Code für Taste "5" Sound Portd.7 , 400 , 550 Print "Motor abbremsen" Portd.4 = 0 'Linker Motor aus Case 52 'Das ist der ASCII Code für Taste "4" Sound Portd.7 , 400 , 750 Print "Links lenken" Servo(1) = 90 Case 54 'das Ist Der Ascii Code Für Taste "6" Sound Portd.7 , 400 , 850 Print "Rechts lenken" Servo(1) = 200 Case 51 'das Ist Der Ascii Code Für Taste "3" Sound Portd.7 , 400 , 950 Print "Gerade aus" Servo(1) = 115 Case 48 'das Ist Der Ascii Code Für Taste "0" Sound Portd.7 , 400 , 350 Print "Lüftung an" Portb.0 = 1 'bestimmt Richtung rechter Motor Portb.1 = 0 'bestimmt Richtung rechter Motor Portd.5 = 1 'rechter Motor EIN Case 49 'das Ist Der Ascii Code Für Taste "1" Sound Portd.7 , 400 , 350 Print "Lüftung aus" Portb.0 = 0 'bestimmt Richtung rechter Motor Portb.1 = 1 'bestimmt Richtung rechter Motor Portd.5 = 0 'rechter Motor EIN Case Else Print "Kommando nicht bekannt" End Select End If Loop
ach nur ein modul, dann wirds ungemein einfacher, schliesse die RX und TX am µC kurz (überbrücken, iss ja kein echter kurzschluss) dann müsste selbst an deinem virtuellen comport dasselbe ankommen was du hingeschickt hast! wenn nicht stimmt irgendwo unterwegs was nicht, wenn doch stimmt im programm was nicht
wie gesagt hatte ja keine ahung wie das wlan modul arbeitet ^^
gerade ist mir noch aufgefallen das nach nem start direkt 4 mal: "Kommando nicht bekannt" kommt im Programm hab ich ja,
Case Else
Print "Kommando nicht bekannt"
Das modul sendet irgend ein Mist über die serielle Leitung raus auch wenn ich rx/tx verbinde erhalte ich im terminal Spielkarten/Smilies/Herzen usw..^^ was ist da los?
vll. schwankungen bei der stromversorgung die dann zu zufälligen symbolen interpretiert werden, Bascom müsst ich mich erst reinlesen ums zu verstehn
vll. steht in der anleitung was, vll. isses nen errorcode oder sowas ascii zeichen wir herzchen stehen mesit für zahlenwerte unter 30, kann da leider auch nicht mehr dazu sagen
EDIT: ich weis ja nicht wie deine kenntnisse in anwendungsprogrammen und der verwendung des comport so sind, aber du könntest dir ja n kleines proggi schreiben was dir die ankommende bytes in hex als dezimalwert und zeichen ausgibt .... wenn du glück hast find ich mein protokollprügel iwo auf der externen platte wieder ^^ da kannste eingaben in jeglicher form lesen (hex, dez, ascii) und eine antwort simulieren (bytefolge eingeben und senden) so hab ich das protokoll meines Casio GTR rausgefunden
Das schaut sehr verdächtig nach falscher Baudrate o.ä aus.
Andere Möglichkeit: das Modul erwartet keine ASCII zeichen. Obwohl wenns mit AT-Kommandos läuft, sollte das schon so sein...
hi, problem ist gelöst liegt an der Spannung die absolut nicht stabil ist... werd die Tage bei Reichelt n Festspannungsregler usw bestellen..
Danke für die mühe
Lesezeichen