reformat in uvostyle
This commit is contained in:
@ -8,8 +8,11 @@
|
|||||||
|
|
||||||
W433DataReciver* W433DataReciver::instance = nullptr;
|
W433DataReciver* W433DataReciver::instance = nullptr;
|
||||||
|
|
||||||
W433DataReciver::W433DataReciver(volatile unsigned char* const port , const unsigned char pin, volatile uint16_t * timerRegister, volatile uint8_t* const timerOverflowRegister, void (* const packetCallback)(uint32_t, void*), void* const userData, void (*errorCodeHandler)(uint8_t, void*) ):
|
W433DataReciver::W433DataReciver(volatile unsigned char* const port, const unsigned char pin,
|
||||||
_port(port), _pin(pin), _timerRegister(timerRegister), _timerOverflowRegister(timerOverflowRegister), _packetCallback(packetCallback), _errorCodeHandler(errorCodeHandler), _userData(userData)
|
volatile uint16_t * timerRegister, volatile uint8_t* const timerOverflowRegister,
|
||||||
|
void (* const packetCallback)(uint32_t, void*), void* const userData, void (*errorCodeHandler)(uint8_t, void*) ):
|
||||||
|
_port(port), _pin(pin), _timerRegister(timerRegister), _timerOverflowRegister(timerOverflowRegister),
|
||||||
|
_packetCallback(packetCallback), _errorCodeHandler(errorCodeHandler), _userData(userData)
|
||||||
{
|
{
|
||||||
instance = this;
|
instance = this;
|
||||||
for(uint8_t i = 0; i < 33; i++) timesBuffer[i] = 0;
|
for(uint8_t i = 0; i < 33; i++) timesBuffer[i] = 0;
|
||||||
@ -132,7 +135,8 @@ void W433DataReciver::setState(const uint8_t stateIn)
|
|||||||
|
|
||||||
void W433DataReciver::interrupt()
|
void W433DataReciver::interrupt()
|
||||||
{
|
{
|
||||||
uint16_t elapsedTime = polarity*(((*_timerOverflowRegister & 0x01) ? *_timerRegister+(UINT16_MAX - previousTime) : *_timerRegister - previousTime)/TICKS_PER_US);
|
uint16_t elapsedTime = polarity*(((*_timerOverflowRegister & 0x01) ? *_timerRegister+
|
||||||
|
(UINT16_MAX - previousTime) : *_timerRegister - previousTime)/TICKS_PER_US);
|
||||||
|
|
||||||
if(elapsedTime < DISCARD_TIME)
|
if(elapsedTime < DISCARD_TIME)
|
||||||
{
|
{
|
||||||
@ -207,14 +211,15 @@ void W433DataReciver::interrupt()
|
|||||||
volatile uint8_t* buffer = reinterpret_cast<volatile uint8_t*>(&packet);
|
volatile uint8_t* buffer = reinterpret_cast<volatile uint8_t*>(&packet);
|
||||||
|
|
||||||
uint8_t computedChecksum = 0;
|
uint8_t computedChecksum = 0;
|
||||||
for(uint8_t j = 0; j < sizeof(packet); j++) for(uint8_t i = 0; i < 8; i++) computedChecksum = computedChecksum + ((buffer[j] & ( 1 << (8 - i))) >> (8 - i));
|
for(uint8_t j = 0; j < sizeof(packet); j++) for(uint8_t i = 0; i < 8;
|
||||||
|
i++) computedChecksum = computedChecksum + ((buffer[j] & ( 1 << (8 - i))) >> (8 - i));
|
||||||
//for(uint8_t j = 0; j < sizeof(packet); j++) for(uint8_t i = 0; i < 8; i++) computedChecksum = computedChecksum + (buffer[j] & ( 1 << (8 - i)));
|
//for(uint8_t j = 0; j < sizeof(packet); j++) for(uint8_t i = 0; i < 8; i++) computedChecksum = computedChecksum + (buffer[j] & ( 1 << (8 - i)));
|
||||||
|
|
||||||
if(computedChecksum == recivedChecksum)
|
if(computedChecksum == recivedChecksum)
|
||||||
{
|
{
|
||||||
#ifdef USE_RINGBUFFER
|
#ifdef USE_RINGBUFFER
|
||||||
_ringBuffer.write(const_cast<uint8_t*>(buffer), sizeof(packet));
|
_ringBuffer.write(const_cast<uint8_t*>(buffer), sizeof(packet));
|
||||||
#endif
|
#endif
|
||||||
if(_packetCallback != nullptr)(*_packetCallback)(packet, _userData);
|
if(_packetCallback != nullptr)(*_packetCallback)(packet, _userData);
|
||||||
}
|
}
|
||||||
else error(ERR_CHECKSUM);
|
else error(ERR_CHECKSUM);
|
||||||
|
@ -82,7 +82,9 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
W433DataReciver(volatile unsigned char* const port , const unsigned char pin, volatile uint16_t * timerRegister, volatile uint8_t* const timerOverflowRegister, void (*packetCallback)(uint32_t, void*) = nullptr, void* userData = nullptr, void (*errorCodeHandler)(uint8_t, void*) = nullptr );
|
W433DataReciver(volatile unsigned char* const port, const unsigned char pin, volatile uint16_t * timerRegister,
|
||||||
|
volatile uint8_t* const timerOverflowRegister, void (*packetCallback)(uint32_t, void*) = nullptr,
|
||||||
|
void* userData = nullptr, void (*errorCodeHandler)(uint8_t, void*) = nullptr );
|
||||||
~W433DataReciver();
|
~W433DataReciver();
|
||||||
static void initTimer();
|
static void initTimer();
|
||||||
static void staticInterrupt();
|
static void staticInterrupt();
|
||||||
|
12
main.cpp
12
main.cpp
@ -130,7 +130,8 @@ void itemDispatch(SVector<Item, MAX_ITEMS>* items, Pwm16b* auxPwm, char* token,
|
|||||||
writeItemState(serial, &items->back(), items->count()-1);
|
writeItemState(serial, &items->back(), items->count()-1);
|
||||||
}
|
}
|
||||||
else if(items->remainingCapacity() == 0) serial->write_p(PSTR("Relay storage full.\n"));
|
else if(items->remainingCapacity() == 0) serial->write_p(PSTR("Relay storage full.\n"));
|
||||||
else serial->write_p(PSTR("Usage: item add [id] [type] [name]\n [id] being a 16bit binary nummber and [name] an optional string\n"));
|
else serial->write_p(
|
||||||
|
PSTR("Usage: item add [id] [type] [name]\n [id] being a 16bit binary nummber and [name] an optional string\n"));
|
||||||
}
|
}
|
||||||
else if( strcmp(token, "delete") == 0 )
|
else if( strcmp(token, "delete") == 0 )
|
||||||
{
|
{
|
||||||
@ -213,7 +214,8 @@ void rgbDispatch(RgbLed* rgbled, char* token, Serial* serial)
|
|||||||
}
|
}
|
||||||
else if( strcmp(token, "print") == 0 )
|
else if( strcmp(token, "print") == 0 )
|
||||||
{
|
{
|
||||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE, "Current RGB values:\nR: %u G: %u B: %u\n", rgbled->getR(), rgbled->getG(), rgbled->getB());
|
snprintf(buffer, SNPRINTF_BUFFER_SIZE, "Current RGB values:\nR: %u G: %u B: %u\n", rgbled->getR(), rgbled->getG(),
|
||||||
|
rgbled->getB());
|
||||||
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
||||||
}
|
}
|
||||||
else if( strcmp(token, "set") == 0 )
|
else if( strcmp(token, "set") == 0 )
|
||||||
@ -300,7 +302,8 @@ void auxDispatch(Pwm16b* auxPwm, char* token, Serial* serial)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void serialDispatch(Serial* serial, SVector<Item, MAX_ITEMS>* items, RgbLed* rgbled, Pwm16b* auxPwm, W433DataReciver* reciver)
|
void serialDispatch(Serial* serial, SVector<Item, MAX_ITEMS>* items, RgbLed* rgbled, Pwm16b* auxPwm,
|
||||||
|
W433DataReciver* reciver)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(serial->dataIsWaiting())
|
if(serial->dataIsWaiting())
|
||||||
@ -450,7 +453,8 @@ int main()
|
|||||||
|
|
||||||
setBit(&PCICR, PCIE1, true);
|
setBit(&PCICR, PCIE1, true);
|
||||||
setBit(&PCMSK1, PCINT8, true);
|
setBit(&PCMSK1, PCINT8, true);
|
||||||
W433DataReciver reciver(&PINC, PC0, &TCNT1, &TIFR1, &sensorPacketRecived, reinterpret_cast<void*>(&serial), &reciverError);
|
W433DataReciver reciver(&PINC, PC0, &TCNT1, &TIFR1, &sensorPacketRecived, reinterpret_cast<void*>(&serial),
|
||||||
|
&reciverError);
|
||||||
W433DataTransmitter transmitter(&PORTB, PB5);
|
W433DataTransmitter transmitter(&PORTB, PB5);
|
||||||
UvosItem::transmitter=&transmitter;
|
UvosItem::transmitter=&transmitter;
|
||||||
|
|
||||||
|
8
pwm.cpp
8
pwm.cpp
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
//16bit
|
//16bit
|
||||||
|
|
||||||
Pwm16b::Pwm16b( volatile unsigned char *timerControlRegisterA, volatile unsigned char *timerControlRegisterB, volatile uint16_t *compareRegisterA, volatile uint16_t *compareRegisterB, volatile uint16_t *inputCaptureRegister, const uint8_t speed, const bool enableA, const bool enableB)
|
Pwm16b::Pwm16b( volatile unsigned char *timerControlRegisterA, volatile unsigned char *timerControlRegisterB,
|
||||||
|
volatile uint16_t *compareRegisterA, volatile uint16_t *compareRegisterB, volatile uint16_t *inputCaptureRegister,
|
||||||
|
const uint8_t speed, const bool enableA, const bool enableB)
|
||||||
{
|
{
|
||||||
|
|
||||||
_timerControlRegisterA = timerControlRegisterA;
|
_timerControlRegisterA = timerControlRegisterA;
|
||||||
@ -69,7 +71,9 @@ Pwm16b::~Pwm16b()
|
|||||||
|
|
||||||
//8bit
|
//8bit
|
||||||
|
|
||||||
Pwm8b::Pwm8b( volatile unsigned char *timerControlRegisterA, volatile unsigned char *timerControlRegisterB, volatile unsigned char *compareRegisterA, volatile unsigned char *compareRegisterB, const uint8_t speed, const bool enableA, const bool enableB)
|
Pwm8b::Pwm8b( volatile unsigned char *timerControlRegisterA, volatile unsigned char *timerControlRegisterB,
|
||||||
|
volatile unsigned char *compareRegisterA, volatile unsigned char *compareRegisterB, const uint8_t speed,
|
||||||
|
const bool enableA, const bool enableB)
|
||||||
{
|
{
|
||||||
_timerControlRegisterA = timerControlRegisterA;
|
_timerControlRegisterA = timerControlRegisterA;
|
||||||
_compareRegisterA = compareRegisterA;
|
_compareRegisterA = compareRegisterA;
|
||||||
|
8
pwm.h
8
pwm.h
@ -13,7 +13,9 @@ private:
|
|||||||
bool _enableB;
|
bool _enableB;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Pwm16b( volatile unsigned char *timerControlRegisterA, volatile unsigned char *timerControlRegisterB, volatile uint16_t *compareRegisterA, volatile uint16_t *compareRegisterB, volatile uint16_t *inputCaptureRegister, const uint8_t speed = 0b00000011, const bool enableA = true, const bool enableB = true);
|
Pwm16b( volatile unsigned char *timerControlRegisterA, volatile unsigned char *timerControlRegisterB,
|
||||||
|
volatile uint16_t *compareRegisterA, volatile uint16_t *compareRegisterB, volatile uint16_t *inputCaptureRegister,
|
||||||
|
const uint8_t speed = 0b00000011, const bool enableA = true, const bool enableB = true);
|
||||||
~Pwm16b();
|
~Pwm16b();
|
||||||
void setDutyA(const uint16_t duty);
|
void setDutyA(const uint16_t duty);
|
||||||
void setDutyB(const uint16_t duty);
|
void setDutyB(const uint16_t duty);
|
||||||
@ -35,7 +37,9 @@ private:
|
|||||||
bool _enableB;
|
bool _enableB;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Pwm8b( volatile unsigned char *timerControlRegisterA, volatile unsigned char *timerControlRegisterB, volatile unsigned char *compareRegisterA, volatile unsigned char *compareRegisterB, const uint8_t speed = 0b00000011, const bool enableA = true, const bool enableB = true);
|
Pwm8b( volatile unsigned char *timerControlRegisterA, volatile unsigned char *timerControlRegisterB,
|
||||||
|
volatile unsigned char *compareRegisterA, volatile unsigned char *compareRegisterB, const uint8_t speed = 0b00000011,
|
||||||
|
const bool enableA = true, const bool enableB = true);
|
||||||
~Pwm8b();
|
~Pwm8b();
|
||||||
void setDutyA(const uint8_t duty);
|
void setDutyA(const uint8_t duty);
|
||||||
void setDutyB(const uint8_t duty);
|
void setDutyB(const uint8_t duty);
|
||||||
|
@ -159,7 +159,8 @@ void RgbLed::patternStep()
|
|||||||
else if(_pattern == 4)
|
else if(_pattern == 4)
|
||||||
{
|
{
|
||||||
( _counter < 8192 ) ? _pwmA->setDutyB(_counter >> 6) : _pwmA->setDutyB( 128 + (_counter >> 11));
|
( _counter < 8192 ) ? _pwmA->setDutyB(_counter >> 6) : _pwmA->setDutyB( 128 + (_counter >> 11));
|
||||||
if( _counter > 1024 ) ( 8192 < _counter && _counter < 16384 ) ? _pwmA->setDutyA((_counter-8192) >> 6) : _pwmA->setDutyA( 128 + (_counter >> 9 ));
|
if( _counter > 1024 ) ( 8192 < _counter
|
||||||
|
&& _counter < 16384 ) ? _pwmA->setDutyA((_counter-8192) >> 6) : _pwmA->setDutyA( 128 + (_counter >> 9 ));
|
||||||
if( _counter > 8192 ) _pwmB->setDutyB(_counter >> 9);
|
if( _counter > 8192 ) _pwmB->setDutyB(_counter >> 9);
|
||||||
|
|
||||||
if(_counter<65530) _counter++;
|
if(_counter<65530) _counter++;
|
||||||
|
0
ringbuffer.h
Executable file → Normal file
0
ringbuffer.h
Executable file → Normal file
@ -125,4 +125,7 @@ void Serial::flush()
|
|||||||
rxBuffer.flush();
|
rxBuffer.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Serial::setTerminator(char terminator){_terminator = terminator;}
|
void Serial::setTerminator(char terminator)
|
||||||
|
{
|
||||||
|
_terminator = terminator;
|
||||||
|
}
|
||||||
|
@ -20,7 +20,10 @@ inline void setDirection( volatile unsigned char *portDirReg, const unsigned cha
|
|||||||
writePin(portDirReg, pin, makeOutput);
|
writePin(portDirReg, pin, makeOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool readPin( volatile unsigned char *inPort, const unsigned char pin){ return (bool) (*inPort & (1 << pin));}
|
inline bool readPin( volatile unsigned char *inPort, const unsigned char pin)
|
||||||
|
{
|
||||||
|
return (bool) (*inPort & (1 << pin));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user