10#ifndef SEMF_OUTPUT_LEDDIMMING_H_
11#define SEMF_OUTPUT_LEDDIMMING_H_
39 void setBrightness(uint16_t minBrightness, uint16_t maxBrightness)
override;
40 void setOn()
override;
44 void setBlinking(
unsigned int onTime,
unsigned int offTime)
override;
45 void setSine(
unsigned int periodInTimeBaseTicks,
unsigned int startIndexInTimeBaseTicks)
override;
46 void setSine(
unsigned int periodInTimeBaseTicks)
override;
47 void setTriangle(
unsigned int periodInTimeBaseTicks,
unsigned int startIndexInTimeBaseTicks)
override;
48 void setTriangle(
unsigned int periodInTimeBaseTicks)
override;
56 void startOnTimeInBlinkingMode();
61 void startOffTimeInBlinkingMode();
66 bool checkForConstantSettingInBlinkingMode();
70 void nextTriangleValue();
85 uint16_t m_minBrightness = 0;
87 uint16_t m_maxBrightness = 1000;
89 unsigned int m_waveformPeriodTicks = 1000;
91 unsigned int m_waveformStepIndex = 0;
93 unsigned int m_blinkOnTicks = 0;
95 unsigned int m_blinkOffTicks = 0;
97 SEMF_SLOT(m_startOnTimeInBlinkingModeSlot,
LedDimming, *
this, startOnTimeInBlinkingMode);
99 SEMF_SLOT(m_startOffTimeInBlinkingModeSlot,
LedDimming, *
this, startOffTimeInBlinkingMode);
101 SEMF_SLOT(m_nextSineValueSlot,
LedDimming, *
this, nextSineValue);
103 SEMF_SLOT(m_nextTriangleValueSlot,
LedDimming, *
this, nextTriangleValue);
This class uses PwmOut and a SoftwareTimer in order to generate different waveforms....
LedDimming(PwmOut &dimmPwmOut, app::TimeBase &timebase)
Constructor.
void setTriangle(unsigned int periodInTimeBaseTicks, unsigned int startIndexInTimeBaseTicks) override
Starts showing a triangle waveform on the led.
LedDimming(const LedDimming &other)=delete
void setBlinking(unsigned int onOffTime) override
Start blinking the led with the same on-off time.
void setSine(unsigned int periodInTimeBaseTicks, unsigned int startIndexInTimeBaseTicks) override
Starts showing a sine waveform on the led.
Mode mode() const override
Returns the active mode of the led.
void setBrightness(uint16_t maxBrightness) override
Sets the maximum brightness of the LED.
Class for using a PWM as an output with permille value handling.
Software SoftwareTimer which can be added to a TimeBase or used singular.
This class uses PwmOut and a SoftwareTimer in order to generate different waveforms....
virtual ~LedDimming()=default
A TimeBase is the bridge between e.g. a hardware timer (interrupt service routine) and TickReceiver o...