reformat in uvostyle

This commit is contained in:
2022-04-12 00:36:58 +02:00
parent 00ca1d6f03
commit 4aca3c3a11
22 changed files with 1260 additions and 1234 deletions

View File

@ -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);

View File

@ -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();

View File

@ -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;

View File

@ -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
View File

@ -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);

View File

@ -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
View File

View 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;
}

View File

@ -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