AVR-Projekt coach2.2_05_sensor - Verwendung des Entfernungssensors und eines Zeitgebers
|
class SensorBASIS { public: virtual void aktualisieren(); virtual int16_t holeAbstand_mm(); };
Code 0-1: Virtuelle Basisklasse der Klasse Sensor
Methodenname | Beschreibung | Beispiel |
---|---|---|
aktualisieren() |
Fügt einem "Ringspeicher" einen neuen Messwert hinzu. | sensor.aktualisieren(); |
int16_t holeAbstand_mm() |
Bildet aus den letzten 10 durch Aktualisierungen gewonnenen Meßwerten den Mittelwert und rechnet den Wert auf einfache Weise in einen Abstand um |
distanz = sensor.holeAbstand_mm(); |
Tabelle 0-1: Methoden der Klasse Sensor
class ZyklusBASIS { public: virtual void setzeMaxZaehler(uint16_t maxwert=50); //Obergrenze, bei der der Zyklenzaehler wieder von vorn beginnt. virtual uint16_t holeZyklusZaehlstand(); //Einstellbereich: 1ms bis maximal 28ms virtual void warteBis_ms(uint8_t dauer_ms=20); //50Hz Zyklus entspricht warten bis 20ms vorbei };
Code 0-2: Virtuelle Basisklasse der Klasse Zyklus
Methodenname | Beschreibung | Beispiel |
---|---|---|
setzeMaxZaehler(uint16_t maxwert=50) |
Setzt die Obergrenze für den Zykluszähler (Erläuterung s.u.) | zyklus.setzeMaxZaehler(50); |
uint16_t holeZyklusZaehlstand() |
Holt die Anzahl der bisher durchlaufenen Endlos-while-Schleifen (Erläuterung s.u.) | switch(holeZyklusZaehlstand()) {...} |
warteBis_ms(uint8_t dauer_ms=20) |
Wartet, bis die angegebenen Millisekunden (1ms bis maximal 28ms) verstrichen sind | while(zyklus.warteBis_ms(20)); |
Tabelle 0-2: Methoden der Klasse Zyklus
|