Thread funktoniert nicht Kategorie: Programmierung C (von Jenny - 14.02.2011 13:09) | ||
| ||
Hallo an alle, mein System besteht aus PRO BOt 128, externen EEPROM und einem Sensor. Nun der Sinn ist es, den Robi auf einer Kreisbahn zuführen/ fahren zu lassen. Sein Drehverhalten soll über die Daten welche mir der Sensor liefert gesteuert werden. D. h. wird ein von mir festgelegter Grenzwert überschritten, so soll der Robi still stehen, andersfalls soll er wie zu beginn des Programms fahren. Nun arbeite ich mit Threads und es klappt nicht alles. Ich meine der Robi dreht sich, bremst wenn der Grenzwert überschritten ist, ABER wenn ich den Robi hochhebe, also in der Hand halte, müsste er mit der voreingestellten speed fahren OHNE zu bremsen da der Sensor auch keine andere Werte liefert. ABER der ROBI bremst!!! Woran kann es liegen?? Beginn meines Programms: < int add_l,add_z; // LSB, Hilfsvariable float str[4]; // fuer die Ausgabe als String int x_long,y_long,z_long; // Long-Bytes des Sensors unsigned int x_short,y_short,z_short; // Short-Bytes des Sensors float x,y,z; // Ausgabevariablen float x_max; // G-Grenzwert int i,h; // Wait i=0; h=3; // Haltezeit in ms x_max=1.6; // G-Grenzwert add_l=0; // LSB, Startadresse str[1]=x; // ax str[2]=y; // ay str[3]=z; // az PRO_BOT128_INIT(); I2C_Init(I2C_100kHz); DRIVE_INIT(); g_werte(); // g_Werte einstellen Thread_Start(2,thread2); // Fahren weiter unten kommt dann die Grenzwertabfrage << << if(x>x_max) { // G-Wert ueberschritten Thread_Start(1,thread1); // Anhalten while(i } Msg_WriteText("halten"); } else { // G-Wert unterschritten Thread_Start(2,thread2); // Weiterfahren Msg_WriteText("fahren"); } Was mache ich falsch? �ber Eure hilfe wäre ich sehr dankbar. Gru� Jenny | ||
Antwort schreiben Antworten: Re: Thread funktoniert nicht (von PeterS - 14.02.2011 14:15) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum