Um nochmal auf das selbstgeschriebene Programm von mir zurück zu kommen: Ich habe das Programm jetzt korrigiert aber er fährt so wie es jetzt ist gleich rückwärts obwohl der ASURO erst vorwärts fahren soll! Vielleicht könnt ihr mir dabei helfen. Hier ist das umgeschriebene Programm:
Code:
#include "asuro.h"

int main(void){
      unsigned int i;
	  
	  Init();
      MotorDir(FWD,FWD); //Beide Motoren auf Vorwärts
      MotorSpeed(200,200); //Bei Motoren mit ca dreivirtel Kraft vorraus
      StatusLED(GREEN);  //Status LED auf grün schalten
      while(1){
		  if (PollSwitch()>0)  //wenn ein taster gedrückt wird
		  {MotorSpeed(0,0);   // Anhalten
		  for (i = 0; i < 847; i++){ //3 Sekunden warten
		  Sleep(255);}
		  StatusLED (RED);   // Status LED auf Rot schlaten
		  MotorDir(RWD,BREAK); // Der Linke Motor auf rückwärts und der Rechte soll stehen bleiben
		  MotorSpeed(120,0);    //Geschwindigkeit der Motoren
		  for (i = 0; i < 847; i++) // 3 Sekunden rückwärts fahren
		  Sleep(255);}
	
	else 
		{StatusLED(GREEN);  // Sonst Status LED auf grün schalten
		MotorDir(FWD,FWD);
		MotorSpeed(200,200);} // Motoren mit dreivirtel Karft vorraus
	}
	  while (1);  // Endlosschleife
      return 0;   // Ende
	  }
Hallo ich habe vor kurzem das Buch gekauft:"Mehr spaß mit ASURO Band 1
Und habe da mal ein paar Programmierungsaufgaben versucht zu lösen nur bei der einen komme ich nicht weiter:
Stopp am Abgrund Asuro soll mit maximaler Geschwindigtkeit vorwärtsfahren und anhalten wenn er auf ein schwarzes Papier trifft: Ich aheb dazu versucht das Prograqmm zu schreiben ist mir so halbwegs gelungen und habe mir die Lösung zu Rate gezogen und habe diese übernommen aber er zeigt mir einen Fehler an.
Hier ist das Programm:
Code:
#include "asuro.h"
#define STOP 200
int main(void) 
{	
	unsigned int lineData[2];
	unsigned char running = TRUE;
	Init();
	MotorDir(FWD,FWD);
	MotorSpeed(255,255);
	do {
		LineData(lineData);
		if ((lineData[0] < STOP) && (lineData[1] < STOP)) {
			MotorSpeed(0,0);
			BackLED(ON,ON); 
15			running = false;
		}		
	} 
	while (running);
	while(1);
	return 0;
}
zu Zeile 15 zeigt er diese Fehlermeldung an:
Code:
avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c: In function `main':
test.c:15: error: `true' undeclared (first use in this function)
test.c:15: error: (Each undeclared identifier is reported only once
test.c:15: error: for each function it appears in.)
make: *** [test.o] Error 1

> Process Exit Code: 2
vielleicht könnt ihr mir helfen woran der Fehler liegen könnte ich verstehe auch noch nicht so richtig was das heißt mir True und False (wahr und falsch) trotz lesen der Anleitung!
Vielleicht könnt ihr mir helfen
Vielen Dank im Vorraus
Felix