25.04.17
Dependencies: mbed
Fork of Sensortest by
Diff: IRSensor.cpp
- Revision:
- 1:82a1ebe6ce11
- Parent:
- 0:fb3f7c677c18
--- a/IRSensor.cpp Thu Apr 13 08:30:35 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -#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; -} -