![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Putty-Ausgabe
Dependencies: mbed
IRSensor.cpp
- Committer:
- EHess
- Date:
- 2017-04-13
- Revision:
- 0:fb3f7c677c18
File content as of revision 0:fb3f7c677c18:
#include "IRSensor.h" #include <cmath> //E. Hess //IRSensor.cpp //Konstruktor -> Erstellt ein IRSensor-Objekt //AnalogIn* distance -> Liest die Voltanzahl des Sensors aus //DigitalOut* bit0, bit1, bit2 -> Binär-Outputs wählen die 6 Sensoren an //Int number -> Sensornummer als int (0-5) IRSensor::IRSensor() {} IRSensor::IRSensor(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number) { this->distance = distance; //Weist den Objektvariablen, die eingegebenen Werte zu this->bit0 = bit0; this->bit1 = bit1; this->bit2 = bit2; this->number = number; } //Destruktor -> Löscht das IRSensor-Objekt IRSensor::~IRSensor() {} //Initialisiert nachträglich void IRSensor::init(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number) { this->distance = distance; //Weist den Objektvariablen, die eingegebenen Werte zu this->bit0 = bit0; this->bit1 = bit1; this->bit2 = bit2; this->number = number; } //Distanzrechner float IRSensor::read() { *bit0 = (number >> 0) & 1; //Vergleicht das Least-Significant-Bit von number mit 1 und setzt *bit0 (z.B. 5: 0000'0101 & 0000'0001 == 0000'0001) *bit1 = (number >> 1) & 1; //Vergleicht das zweite Bit von rechts *bit2 = (number >> 2) & 1; //Vergleicht das dritte Bit von rechts float d = distance->read(); return d; }