document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*******************************************************************************
  2.  Projektname:       ACS.cprj
  3.  Benötigte Libs´s:  IntFunc_lib.cc
  4.  Routinen:          lcd.cc, PRO-BOT128C_Lib_V2.cc
  5.  Autor:             Niels
  6.  Datum:             29. 04. 2013
  7.  
  8.  Funktion:          Testen der ACS-Funktion mit einstellbarer Empfindlichkeit
  9. *******************************************************************************/
  10.  
  11. // Compiler-Direktiven
  12.  
  13. void main(void)
  14. {
  15.  
  16. int ACS_Value;
  17. ACS_Value=1;
  18.  
  19. PRO_BOT128_INIT();    //PRO-BOT128 Setup
  20. ACS_INIT(ACS_Value); // Geringste Empfindlichkeit = 1; höchste = 20
  21. AbsDelay(100);       //Wait 0,1 Sec.
  22. LCD_Init();
  23. LCD_ClearLCD();
  24.  
  25. Akkuspg(); // Ausgabe der Akkuspannung
  26.  
  27. //Ausgabe der ACS-Empfindlichkeit in Zeile 1
  28. LCD_ClearLCD();
  29. LCD_Locate(1, 1);
  30. LCD_WriteText("ACS INIT=");
  31. LCD_Locate(1, 10);
  32. LCD_WriteText("01");
  33.  
  34. // Endlos-Schleife
  35.     do
  36.     {
  37.     // Tastendruck SW2 (globale Variable)
  38.            if (SW2!=0)
  39.            {
  40.                 //Tastendruck
  41.                 ACS_Value++;
  42.                 ACS_INIT(ACS_Value); // Höhere Empfindlichkeit wählen
  43.                 LCD_Locate(1, 10);
  44.                 LCD_WriteWord(ACS_Value, 2);
  45.                 SW2=0; // Muss nach Abholung zurück gesetzt werden
  46.            }
  47.  
  48.            if (ACS_LEFT() == 0)
  49.            {
  50.                 // Hindernis links wurde erkannt
  51.                 LCD_Locate(2, 1);
  52.                 LCD_WriteText("X");
  53.            }
  54.            else
  55.            {
  56.             // Kein Hindernis links
  57.                 LCD_Locate(2, 1);
  58.                 LCD_WriteText(" ");
  59.             }
  60.  
  61.             if (ACS_RIGHT() == 0)
  62.            {
  63.                 // Hindernis rechts wurde erkannt
  64.                LCD_Locate(2, 16);
  65.                LCD_WriteText("X");
  66.            }
  67.             else
  68.            {
  69.             // Kein Hindernis rechts
  70.                 LCD_Locate(2, 16);
  71.                 LCD_WriteText(" ");
  72.             }
  73.     }
  74.     while(1);
  75. }
  76.  
  77. // Wir lagern Programmcode in eine (Unter-)Funktion aus
  78. int Akkuspg(void)
  79. {
  80.     LCD_ClearLCD();
  81.     //LCD auf Zeile 1 Position 1 setzen:
  82.     LCD_Locate(1, 1);
  83.     LCD_WriteText("Akkuspannung:"); //Begruessung
  84.     LCD_Locate(2, 1);
  85.     float Akkuspannung;
  86.     Akkuspannung=AKKU_SPG();
  87.     LCD_WriteFloat(Akkuspannung, 6);
  88.     AbsDelay(2000);       //Wait 2 Sec.
  89.     return 0;
  90. }
');