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, > > > > ich habe eine Problem mit der Programmierung. Ich habe meine Programme > > geschrieben, kompiliert und auch übertragen, allerdings macht der ROBI > > nicht das was er sollte. > > > > Das Programm besteht im Wesentlichen darin, einen Sensor während der Fahrt > > auszulesen. > > > > Beide Programme funktionieren, beim verschachteln der beiden Programme > > ineinander geht garnichts. > > > > Wieso ist das so? > > > > Programm Sensor auslesen komoplett: > > > > void a_auslesen(void) > > { > > > > PRO_BOT128_INIT(); > > I2C_Init(I2C_100kHz); > > > > word adresse; > > adresse=0x02; > > > > int x_long,y_long,z_long; > > unsigned int x_short,y_short,z_short; > > float x,y,z; > > > > I2C_Start(); > > I2C_Write(0x70); > > I2C_Write(adresse<<8); > > I2C_Stop(); > > > > I2C_Start(); > > I2C_Write(0x71); > > > > x_short=I2C_Read_ACK(); > > x_long=I2C_Read_ACK(); > > > > x_long=(((x_long)*4)+(x_short/64)); > > > > if (x_long > 511) > > { > > x_long= (x_long - 511); > > x_long= (511 - x_long); > > x_long= (x_long*(-1)); > > > > x= (x_long * 0.00390625); > > } > > else > > { > > x= (x_long * 0.00390625); > > } > > > > y_short=I2C_Read_ACK(); > > y_long=I2C_Read_ACK(); > > > > y_long=(((y_long)*4)+(y_short/64)); > > > > if (y_long > 511) > > { > > y_long= (y_long - 511); > > y_long= (511 - y_long); > > y_long= (y_long*(-1)); > > > > y= (y_long * 0.00390625); > > } > > else > > { > > y= (y_long * 0.00390625); > > } > > > > z_long=I2C_Read_ACK(); > > z_short=I2C_Read_NACK(); > > > > z_long=(((z_long)*4)+(z_short/64)); > > > > if (z_long > 511) > > { > > z_long= (z_long - 511); > > z_long= (511 - z_long); > > z_long= (z_long*(-1)); > > > > z= (z_long * 0.00390625); > > } > > else > > { > > z= (z_long * 0.00390625); > > } > > > > I2C_Stop(); > > > > > > Msg_WriteFloat(x); > > Msg_WriteChar(13); > > > > Msg_WriteFloat(y); > > Msg_WriteChar(13); > > > > Msg_WriteFloat(z); > > Msg_WriteChar(13); > > > > > > } > > > > Programm zum Fahren: > > > > void robi_fahren(void) > > { > > > > DRIVE_ON(); > > > > GO_TURN(60,0,180); > > GO_TURN(0,180,160); > > GO_TURN(60,0,180); > > GO_TURN(0,180,160); > > GO_TURN(60,0,180); > > GO_TURN(0,180,160); > > GO_TURN(60,0,180); > > GO_TURN(0,180,160); > > GO_TURN(60,0,180); > > GO_TURN(0,180,160); > > > > DRIVE_OFF(); > > } > > > > Wenn ich nun zusammenfasse: > > > > void main (void) > > { > > > > PRO_BOT128_INIT(); > > I2C_Init(I2C_100kHz); > > DRIVE_INIT(); > > > > robi_fahren(); > > a_auslesen(); > > > > } > > Jetzt macht er nichts. Wo liegt mein Fehler?? > > > > Über eure Hilfe wäre ich sehr dankbar. > > > > Gruß > > Jenny > > > > > >>> Hallo noch mal an alle, > >>> > >>> kann es sein, dass ich mein Problem mithilfe von Multithreads bearbeiten > >>> kann? > >>> Gruß > >>> Jenny