LBotics.at

Um dennoch zeitgesteuerte Abläufe implementieren zu können, steht in EVC ein Counter zur Verfügung. Dieser Counter zählt im Hintergrund jede Zehntelsekunde um eins hoch, ohne dass dabei die Ausführung des Programmcodes innerhalb der while-Schleife angehalten wird.

Man kann sich diesen Counter auch wie eine Art Stoppuhr vorstellen, die mit Start des Programms zu laufen beginnt und auf der man stets die vergangene Zeit seit dem Programmstart in Zehntelsekunden ablesen kann.

Der aktuelle Wert des Counters wird in der Integer-Variable COUNTER zur Verfügung gestellt. Auch ist es möglich den Counter wieder auf 0 zu setzen, indem man der Variable COUNTER den Wert 0 zuweist.

Programmbeispiel - Anzeige des aktuellen Werts des Counters

Im folgenden Beispiel wird der aktuelle Wert des Counters am Display angezeigt. Durch Drücken des Center-Buttons kann der Counter zurückgesetzt werden. Auch kann das Programm mit dem Exit-Button jederzeit ohne Verzögerung beendet werden.

#include "evclibrary.h"
int main()
{
// 1. Konfiguration
// 2. Initialisieren des Brick
EVC_INIT();
// 3. Programm - Roboter
LCD_DRAW_TEXT(3,5,"COUNTER: ");
while(NOTEXITBUTTON)
{
LCD_DRAW_INT(15,5,COUNTER);
if(READ_BUTTON(BUTTON_CENTER)==1)
{
COUNTER = 0;
}
}
// 4. Programmende - Freigeben der Hardwarezugriffe
EVC_CLOSE();
return 0;
}
Erklärungen zu diesem Programmbeispiel
Zeile 11: LCD_DRAW_INT(15,5,COUNTER);

Anzeige des Werts der Integer-Variable COUNTER in Zeile 5 an Position 15. Dieser Wert wird pro Zehntelsekunde automatisch um eins erhöht.

Zeile 14: COUNTER = 0;

Wurde der Center-Button gedrückt, so wird der Variable COUNTER der Wert 0 zugewiesen und somit der Counter zurückgesetzt, womit dieser wieder bei 0 zu zählen beginnt.