72 lines
1.4 KiB
C
72 lines
1.4 KiB
C
![]() |
#ifndef _DISTANCE_SENSOR_H
|
||
|
#define _DISTANCE_SENSOR_H
|
||
|
|
||
|
#include "../../stdafx.h"
|
||
|
#include "sensor.h"
|
||
|
|
||
|
class Distance_Sensor : public Sensor
|
||
|
{
|
||
|
public:
|
||
|
Distance_Sensor()
|
||
|
{
|
||
|
this->parent = NULL;
|
||
|
this->moduleId = 0;
|
||
|
this->hardwarePort = NULL;
|
||
|
this->hardwareDDR = NULL;
|
||
|
this->hardwarePin = NULL;
|
||
|
this->pin = 0;
|
||
|
}
|
||
|
|
||
|
Distance_Sensor(uint32 sensorId)
|
||
|
{
|
||
|
this->parent = NULL;
|
||
|
this->moduleId = sensorId;
|
||
|
|
||
|
switch(sensorId)
|
||
|
{
|
||
|
case IO_SENSOR_DISTANCE_0_DEG:
|
||
|
this->hardwarePort = &PORTC;
|
||
|
this->hardwareDDR = &DDRC;
|
||
|
this->hardwarePin = &PINC;
|
||
|
this->pin = (1 << 0);
|
||
|
break;
|
||
|
case IO_SENSOR_DISTANCE_90_DEG:
|
||
|
this->hardwarePort = &PORTC;
|
||
|
this->hardwareDDR = &DDRC;
|
||
|
this->hardwarePin = &PINC;
|
||
|
this->pin = (1 << 1);
|
||
|
break;
|
||
|
case IO_SENSOR_DISTANCE_180_DEG:
|
||
|
this->hardwarePort = &PORTC;
|
||
|
this->hardwareDDR = &DDRC;
|
||
|
this->hardwarePin = &PINC;
|
||
|
this->pin = (1 << 2);
|
||
|
break;
|
||
|
case IO_SENSOR_DISTANCE_270_DEG:
|
||
|
this->hardwarePort = &PORTC;
|
||
|
this->hardwareDDR = &DDRC;
|
||
|
this->hardwarePin = &PINC;
|
||
|
this->pin = (1 << 3);
|
||
|
break;
|
||
|
default:
|
||
|
this->hardwarePort = NULL;
|
||
|
this->hardwareDDR = NULL;
|
||
|
this->hardwarePin = NULL;
|
||
|
this->pin = 0;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected:
|
||
|
//Hardware
|
||
|
volatile uint8* hardwarePort;
|
||
|
volatile uint8* hardwareDDR;
|
||
|
volatile uint8* hardwarePin;
|
||
|
uint8 pin;
|
||
|
|
||
|
public:
|
||
|
float GetDistance();
|
||
|
};
|
||
|
|
||
|
#endif
|