Files
RGBController/rgbled.h
2017-08-14 21:07:08 +02:00

46 lines
815 B
C++

#include <util/delay.h>
#include "pwm.h"
class RgbLed
{
private:
Pwm8b* _pwmA;
Pwm8b* _pwmB;
uint8_t _pattern = 0;
uint16_t _counter = 0;
bool _stroke = false;
uint8_t _targetR = 0;
uint8_t _targetG = 0;
uint8_t _targetB = 0;
bool _fade = true;
uint8_t _fadeSpeed = 7;
void patternStep();
public:
RgbLed( Pwm8b* pwmA, Pwm8b* pwmB );
void setSolidColor( const uint8_t r, const uint8_t g, const uint8_t b);
void setPattern(const uint8_t id);
void setPreset( const uint8_t preset);
void on();
void off();
void setFade(bool fade = true);
void logic();
uint8_t getR();
uint8_t getB();
uint8_t getG();
};
template <typename T> T sgn(T val)
{
return (T(0) < val) - (val < T(0));
}