/*******************************************************************************
Projektname: ODO2.cprj
Benötigte LibsŽs: IntFunc_lib.cc
Routinen: lcd.cc, PRO-BOT128C_Lib_V2.cc
Autor: Niels
Datum: 16. 04. 2013
Funktion: ODOMETER zum Geradeausfahren verwenden
*******************************************************************************/
// Compiler-Direktiven
#define SPEED0 160
#define SPEED1 200
void main(void)
{
PRO_BOT128_INIT(); //PRO-BOT128 Setup
ENC_LED_ON();
ODO_RESET();
AbsDelay(100); //Wait 0,1 Sec.
LCD_Init();
LCD_ClearLCD();
Akkuspg(); // Ausgabe der Akkuspannung
AbsDelay(3000); //Wait 3 Sec.
LCD_ClearLCD();
//LCD auf Zeile 1 Position 1 setzen:
LCD_Locate(1, 1);
LCD_WriteText("ODO-Messwerte:");
MOTOR_DIR(1,1); //beide Motoren vorwärts - MOTOR DIRECTION
MOTOR_POWER(SPEED1, SPEED1);
DRIVE_ON(); //Motorspannung an
// Endlos-Schleife
do
{
if (ODO_LEFT>ODO_RIGHT)
{
MOTOR_POWER(SPEED0, SPEED1); //Links langsamer
}
if (ODO_LEFT<ODO_RIGHT)
{
MOTOR_POWER(SPEED1, SPEED0); //Rechts langsamer
}
//Ausgabe der ODOMETER-Messwerte
LCD_Locate(2, 1);
LCD_WriteText("L:");
LCD_WriteWord(ODO_LEFT, 5);
LCD_WriteText("-R:");
LCD_WriteWord(ODO_RIGHT, 5);
}
while(1);
}
int Akkuspg(void)
{
LCD_ClearLCD();
//LCD auf Zeile 1 Position 1 setzen:
LCD_Locate(1, 1);
LCD_WriteText("Akkuspannung:"); //Begruessung
LCD_Locate(2, 1);
float Akkuspannung;
Akkuspannung=AKKU_SPG();
LCD_WriteFloat(Akkuspannung, 6);
AbsDelay(2000); //Wait 2 Sec.
return 0;
}