Putty-Ausgabe

Dependencies:   mbed

Committer:
EHess
Date:
Thu Apr 13 08:30:35 2017 +0000
Revision:
0:fb3f7c677c18
Sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
EHess 0:fb3f7c677c18 1 #include "IRSensor.h"
EHess 0:fb3f7c677c18 2 #include <cmath>
EHess 0:fb3f7c677c18 3
EHess 0:fb3f7c677c18 4 //E. Hess
EHess 0:fb3f7c677c18 5 //IRSensor.cpp
EHess 0:fb3f7c677c18 6
EHess 0:fb3f7c677c18 7 //Konstruktor -> Erstellt ein IRSensor-Objekt
EHess 0:fb3f7c677c18 8 //AnalogIn* distance -> Liest die Voltanzahl des Sensors aus
EHess 0:fb3f7c677c18 9 //DigitalOut* bit0, bit1, bit2 -> Binär-Outputs wählen die 6 Sensoren an
EHess 0:fb3f7c677c18 10 //Int number -> Sensornummer als int (0-5)
EHess 0:fb3f7c677c18 11
EHess 0:fb3f7c677c18 12 IRSensor::IRSensor() {}
EHess 0:fb3f7c677c18 13
EHess 0:fb3f7c677c18 14 IRSensor::IRSensor(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number) {
EHess 0:fb3f7c677c18 15 this->distance = distance; //Weist den Objektvariablen, die eingegebenen Werte zu
EHess 0:fb3f7c677c18 16 this->bit0 = bit0;
EHess 0:fb3f7c677c18 17 this->bit1 = bit1;
EHess 0:fb3f7c677c18 18 this->bit2 = bit2;
EHess 0:fb3f7c677c18 19 this->number = number;
EHess 0:fb3f7c677c18 20 }
EHess 0:fb3f7c677c18 21
EHess 0:fb3f7c677c18 22 //Destruktor -> Löscht das IRSensor-Objekt
EHess 0:fb3f7c677c18 23 IRSensor::~IRSensor() {}
EHess 0:fb3f7c677c18 24
EHess 0:fb3f7c677c18 25 //Initialisiert nachträglich
EHess 0:fb3f7c677c18 26 void IRSensor::init(AnalogIn* distance, DigitalOut* bit0, DigitalOut* bit1, DigitalOut* bit2, int number) {
EHess 0:fb3f7c677c18 27 this->distance = distance; //Weist den Objektvariablen, die eingegebenen Werte zu
EHess 0:fb3f7c677c18 28 this->bit0 = bit0;
EHess 0:fb3f7c677c18 29 this->bit1 = bit1;
EHess 0:fb3f7c677c18 30 this->bit2 = bit2;
EHess 0:fb3f7c677c18 31 this->number = number;
EHess 0:fb3f7c677c18 32 }
EHess 0:fb3f7c677c18 33
EHess 0:fb3f7c677c18 34 //Distanzrechner
EHess 0:fb3f7c677c18 35 float IRSensor::read()
EHess 0:fb3f7c677c18 36 {
EHess 0:fb3f7c677c18 37 *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)
EHess 0:fb3f7c677c18 38 *bit1 = (number >> 1) & 1; //Vergleicht das zweite Bit von rechts
EHess 0:fb3f7c677c18 39 *bit2 = (number >> 2) & 1; //Vergleicht das dritte Bit von rechts
EHess 0:fb3f7c677c18 40
EHess 0:fb3f7c677c18 41 float d = distance->read();
EHess 0:fb3f7c677c18 42 return d;
EHess 0:fb3f7c677c18 43 }
EHess 0:fb3f7c677c18 44