Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > 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: > > <<void main(void) { > > > > 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<h) { // Haltezeit > > 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 > > Tut mir leid Jenny, aus dem Fragment kann man zuwenig ersehen. Schick doch mal das ganze > Programm an ccpro@gmx.de und sag welche Version der IDE Du benutzt. > > Gruss Peter