/*******************************************************************************
Projektname: ACS.cprj
Benötigte Libs´s: IntFunc_lib.cc
Routinen: lcd.cc, PRO-BOT128C_Lib_V2.cc
Autor: Niels
Datum: 29. 04. 2013
Funktion: Testen der ACS-Funktion mit einstellbarer Empfindlichkeit
*******************************************************************************/
// Compiler-Direktiven
void main(void)
{
int ACS_Value;
ACS_Value=1;
PRO_BOT128_INIT(); //PRO-BOT128 Setup
ACS_INIT(ACS_Value); // Geringste Empfindlichkeit = 1; höchste = 20
AbsDelay(100); //Wait 0,1 Sec.
LCD_Init();
LCD_ClearLCD();
Akkuspg(); // Ausgabe der Akkuspannung
//Ausgabe der ACS-Empfindlichkeit in Zeile 1
LCD_ClearLCD();
LCD_Locate(1, 1);
LCD_WriteText("ACS INIT=");
LCD_Locate(1, 10);
LCD_WriteText("01");
// Endlos-Schleife
do
{
// Tastendruck SW2 (globale Variable)
if (SW2!=0)
{
//Tastendruck
ACS_Value++;
ACS_INIT(ACS_Value); // Höhere Empfindlichkeit wählen
LCD_Locate(1, 10);
LCD_WriteWord(ACS_Value, 2);
SW2=0; // Muss nach Abholung zurück gesetzt werden
}
if (ACS_LEFT() == 0)
{
// Hindernis links wurde erkannt
LCD_Locate(2, 1);
LCD_WriteText("X");
}
else
{
// Kein Hindernis links
LCD_Locate(2, 1);
LCD_WriteText(" ");
}
if (ACS_RIGHT() == 0)
{
// Hindernis rechts wurde erkannt
LCD_Locate(2, 16);
LCD_WriteText("X");
}
else
{
// Kein Hindernis rechts
LCD_Locate(2, 16);
LCD_WriteText(" ");
}
}
while(1);
}
// Wir lagern Programmcode in eine (Unter-)Funktion aus
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;
}