hwcom sync-Probleme? Kategorie: Programmierung (von skontox - 4.08.2003 11:59) | |
| |
Ein wunderschönen Tag! Ich habe die CC2 mit einem Datenhandschuh über die RS232-Schnittstelle mit 9600 Baut gekoppelt! Problem ist, dass der Handschuh seine Daten permanent sendet (kein Empfang möglich!) und ich bei grö�eren Berechnungen mit den empfangenen Werten Probleme mit der Synkronisation mit dem Empfang habe. Bei kleineren Berechnungen läuft es ganz gut! Was kann man da machen? Wahrscheinlich ist mein Code auch nicht so super, aber auf die Schnelle viel mir nix besseres ein. Zum Testen habe ich hier einen ferngesteuerten Wagen über den Handschuh gesteuert. D.H der Handschuh hat einen Bewegungssensor. Wenn der Handschuh nach vorne kippt, dann würde der Wagen nach vorne fahren. Wenn der Handschuh nach hinten kippt nach hinten. Und nach rechts und links, dann würde der Wagen nach rechts und links fahren, das klappt auch fast immer, aber manchmal bekommt er halt Probleme mit der Synkronisation. Um den Wagen zusteuern, werden einfach Port 0,1,2,3 benutzt. Diese Ports ersetzen die Knöpfe an der Fernbedienung! Hier mal mein Beispiel-Code: function Glove_Miniwagen() { setzte_int_Display("Glo-Mini"); //Funktion für die interne LCD-Anzeige sleep 1000; //# Glove_Erkennung # Glove_Erkennung (); //Um zuerkennen, ob ein Handschuh angeschlossen ist. //Erneute Erkennung zur Synchronisation und Datenerfassung // Variablen deklarieren int empfang1,empfang2,syncerror_flag,syncerror2_flag,poweron_flag; int count,linkswert,rechtswert; float links, rechts, wert; string ueberwachung; syncerror_flag=0; syncerror2_flag=0; poweron_flag=0; //Hardware-RS232-Schnittstelle initialisieren hwcom.init(); hwcom.setspeed(5); //9600 Baud while syncerror_flag!=1 { syncerror2_flag=0; wait hwcom.rxd(); empfang1= hwcom.get(); if empfang1==1 //Endzeichen im Paket { wait hwcom.rxd(); empfang2= hwcom.get(); if empfang2==128 //Startzeichen im Paket { while syncerror2_flag!=1 { for count = 1 ... 10 { wait hwcom.rxd(); wert= hwcom.get(); if count==6 //Enthält den "Pitch"-Wert Wert 255 ganz nach vorne gekippt! //Wert 0 ganz nach hinten. 127 genau die Waage { if wert>=130 and wert<=155 //Der Wagen soll nicht fahren! { ports.set(0,0); //Vorwärts ist aus ports.set(1,0); //Rückwärts ist aus } if wert<130 //Der Wagen soll Rückwärts fahren { ports.set(0,0); //Vorwärts ist aus ports.set(1,1); //Rückwärts ist an } if wert>155 //Der Wagen soll Vorwärts fahren { ports.set(1,0); //Rückwärts ist aus ports.set(0,1); //Vorwärts ist an } } if count==7 //Enthält den "Roll"-Wert Wert 255 ganz nach vorne gekippt! //Wert 0 ganz nach hinten. 127 genau die Waage { if wert>=100 and wert<=155 //Der Wagen soll nicht lenken! { ports.set(2,0); //Rechts ist aus ports.set(3,0); //Links ist aus } if wert<100 { ports.set(2,0); //Rechts ist aus ports.set(3,1); //Links ist an } if wert>155 { ports.set(3,0); //Links ist aus ports.set(2,1); //Rechts ist an } } if count==9 //Endzeichen des Paketes mu� 1 sein { if wert!=1 { syncerror2_flag=1; } } } } } } } Portsoff(); //diese Funktion setzt die verwendeten Ausgangsport wieder auf 0 setzte_int_Display("Sy-Error"); //Funktion für die interne Anzeige sleep 1000; setzte_int_Display("Auswahl"); } Vielleicht kann mir mal jemand einen Tipp geben, sprich bessere Vorgehensweise in Verbindung mit der hwcom-Schnittstelle! Gru� skontox | |
Antwort schreiben Antworten: Re: hwcom sync-Probleme? (von Tom - 6.08.2003 21:55) Re: hwcom sync-Probleme? (von Fischi - 7.08.2003 18:40) Re: hwcom sync-Probleme? (von Rolf - 6.08.2003 22:46) Re: hwcom sync-Probleme? (von Fischi - 7.08.2003 18:41) Re: hwcom sync-Probleme? (von André H. - 5.08.2003 9:59) Re: hwcom sync-Probleme? (von Fischi - 5.08.2003 13:40) Re: hwcom sync-Probleme? (von Rolf - 4.08.2003 16:00) Re: hwcom sync-Probleme? (von André H. - 5.08.2003 8:45) Re: hwcom sync-Probleme? (von Rolf - 5.08.2003 12:20) Re: hwcom sync-Probleme? (von Rolf - 5.08.2003 13:25) Re: hwcom sync-Probleme? (von Fischi - 5.08.2003 13:45) Re: hwcom sync-Probleme? (von Fischi - 4.08.2003 19:06) Re: hwcom sync-Probleme? (von Rolf - 4.08.2003 20:51) |