Zitat von
damaltor
dien programm sieht ok aus, bis darauf dass die funktion Init(); UNTER die variablendeklaration muss.
Negativ, dann geht gar nichts mehr, das war das eine Problem mit den nur noch leuchtenden LEDs. Dein Programm zu den Tastern funktioniert, es werden auch die richtigen Werte ausgegeben.
Aber auch die zuletzt gepostete Funktion funktioniert in meinem Programm nicht, irgendwie habe ich den Verdacht, dass ich die an die falsche Stelle setze, kann das nochmal jemand überprüfen?
Ich habe das jetzt aus Gag nochmal umpositioniert, half aber auch nicht.
Also jetzt sieht das Ganze so aus:
Code:
#include "asuro.h"
#define dunkel 50
#define rechts 1
#define links 0
void warte (int s)
{
int x = 0;
for (x = 0; x <s; x++) Sleep(72);
}
int main(void)
{
Init();
unsigned int Licht[2];
int white;
FrontLED(ON);
warte(1000);
LineData(Licht);
white = (Licht[links]+Licht[rechts])/2-60;
MotorDir(FWD,FWD);
MotorSpeed(180,180);
int i = 0;
while (1)
{
LineData(Licht);
MotorSpeed(180,180);
while (Licht[links] > white && Licht[rechts] > white)
{
MotorDir(FWD,FWD);
LineData(Licht);
}
MotorSpeed(180,180);
while (Licht[links] < white)
{
MotorDir(FWD,BREAK);
LineData(Licht);
while (Licht[rechts] < white)
{
MotorSpeed(255,180);
LineData(Licht);
while (Licht[links] > white)
{
MotorSpeed(255,180);
LineData(Licht);
}
}
MotorSpeed(180,180);
}
MotorSpeed(180,180);
while (Licht[rechts] < white)
{
MotorDir(BREAK,FWD);
LineData(Licht);
while (Licht[links] < white)
{
MotorSpeed(180,255);
LineData(Licht);
while (Licht[rechts] > white)
{
MotorSpeed(180,255);
LineData(Licht);
}
}
MotorSpeed(180,180);
}
}
if(!(PINC & (1<<PC4)))
{
MotorDir(BREAK,BREAK);
MotorSpeed(0,0);
BackLED(ON,ON);
}
return 0;
}
Lesezeichen