71 lines
1.4 KiB
C++
71 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
|