7 #ifndef DIGITAL_MODULE_H_
8 #define DIGITAL_MODULE_H_
11 #include "ChipObject.h"
15 const uint32_t kExpectedLoopTiming = 260;
27 void SetPWM(uint32_t channel, uint8_t value);
28 uint8_t
GetPWM(uint32_t channel);
38 void SetDIO(uint32_t channel,
short value);
39 bool GetDIO(uint32_t channel);
43 void Pulse(uint32_t channel,
float pulseLength);
56 static uint8_t RemapDigitalChannel(uint32_t channel) {
return 15 - channel; };
57 static uint8_t UnmapDigitalChannel(uint32_t channel) {
return 15 - channel; };
60 SEM_ID m_digitalSemaphore;
61 SEM_ID m_relaySemaphore;
62 SEM_ID m_doPwmSemaphore;
void SetRelayReverse(uint32_t channel, bool on)
uint8_t GetPWM(uint32_t channel)
uint8_t GetRelayForward()
void SetDIO(uint32_t channel, short value)
void SetRelayForward(uint32_t channel, bool on)
void Pulse(uint32_t channel, float pulseLength)
void SetDO_PWMOutputChannel(uint32_t pwmGenerator, uint32_t channel)
DigitalModule(uint8_t moduleNumber)
void FreeDIO(uint32_t channel)
void SetDO_PWMDutyCycle(uint32_t pwmGenerator, float dutyCycle)
bool AllocateDIO(uint32_t channel, bool input)
void SetDO_PWMRate(float rate)
uint32_t AllocateDO_PWM()
void SetPWM(uint32_t channel, uint8_t value)
static DigitalModule * GetInstance(uint8_t moduleNumber)
I2C * GetI2C(uint32_t address)
uint16_t GetDIODirection()
void SetPWMPeriodScale(uint32_t channel, uint32_t squelchMask)
uint8_t GetRelayReverse()
void FreeDO_PWM(uint32_t pwmGenerator)