84 lines
1.4 KiB
C++
84 lines
1.4 KiB
C++
#ifndef _KICKER_H
|
|
#define _KICKER_H
|
|
|
|
#include "stdafx.h"
|
|
|
|
class Kicker : public IO_Module
|
|
{
|
|
public:
|
|
Kicker()
|
|
{
|
|
this->enabled = false;
|
|
this->parent = NULL;
|
|
this->moduleId = 0;
|
|
this->portPower = NULL;
|
|
this->portForward = NULL;
|
|
this->portReverse = NULL;
|
|
this->pinPower = 0;
|
|
this->pinForward = 0;
|
|
this->pinReverse = 0;
|
|
}
|
|
|
|
Kicker(uint32 kickerId)
|
|
{
|
|
this->enabled = false;
|
|
this->parent = NULL;
|
|
this->moduleId = kickerId;
|
|
|
|
switch(kickerId)
|
|
{
|
|
case IO_KICKER_MAIN:
|
|
this->portPower = &PORTG;
|
|
this->portForward = &PORTA;
|
|
this->portReverse = &PORTE;
|
|
this->pinPower = (1 << 3);
|
|
this->pinForward = (1 << 2);
|
|
this->pinReverse = (1 << 6);
|
|
break;
|
|
default:
|
|
this->portPower = NULL;
|
|
this->portForward = NULL;
|
|
this->portReverse = NULL;
|
|
this->pinPower = 0;
|
|
this->pinForward = 0;
|
|
this->pinReverse = 0;
|
|
break;
|
|
}
|
|
|
|
*this->portForward |= this->pinForward;
|
|
*this->portReverse &= ~this->pinReverse;
|
|
}
|
|
|
|
protected:
|
|
bool enabled;
|
|
|
|
//Hardware
|
|
volatile uint8* portPower;
|
|
volatile uint8* portForward;
|
|
volatile uint8* portReverse;
|
|
uint8 pinPower;
|
|
uint8 pinForward;
|
|
uint8 pinReverse;
|
|
|
|
public:
|
|
bool GetEnabled()
|
|
{
|
|
return enabled;
|
|
}
|
|
|
|
void SetEnabled(bool newStatus)
|
|
{
|
|
enabled = newStatus;
|
|
|
|
if(enabled)
|
|
{
|
|
*portPower |= pinPower;
|
|
}
|
|
else
|
|
{
|
|
*portPower &= ~pinPower;
|
|
}
|
|
}
|
|
};
|
|
|
|
#endif
|