Ich hab meine Linienverfolgung doch noch gefunden. Es war im Ordner mit den Originaldateien. Ich hatte die originale LineDemo abgeändert. Die ursprünglichen Programmzeilen sind noch als Kommentare drin. Ich hoffe ihr kommt damit klar.
Hier ist sie:
Code:
#include "asuro.h"
#define SPEED 0xA0
int speedLeft,speedRight;
unsigned int lineData[2];
int ADOffset;
void LineDemo(void)
{
unsigned char j;
int i;
Init();
FrontLED(ON);
for (j = 0; j < 0xFF; j++) LineData(lineData);
LineData(lineData);
ADOffset = lineData[0] - lineData[1];
speedLeft = speedRight = SPEED;
for(;;) {
LineData(lineData);
i = (lineData[0] - lineData[1]) - ADOffset;
if ( i > 4) { //Line is left
StatusLED(GREEN);
//speedLeft = SPEED + i;
//if (speedLeft > 0xFE) speedLeft = 0xFF;
speedRight = SPEED - 2 * i;
if (speedRight < 0x01) speedRight = 0x00;
}
else if ( i < -4) { //Line is right
StatusLED(RED);
//speedRight = SPEED - i;
//if (speedRight > 0xFE) speedRight = 0xFF;
speedLeft = SPEED + 2 * i;
if (speedLeft < 0x01) speedLeft = 0x00;
}
else {
StatusLED(OFF);
//acc = 0;
speedLeft = speedRight = SPEED;
}
MotorSpeed(speedLeft,speedRight);
}
}
Der Termin geht klar.
Waste
Lesezeichen