powersave #2

Merged
martin merged 7 commits from powersave into main 2023-01-11 11:29:06 +01:00
3 changed files with 20 additions and 31 deletions
Showing only changes of commit aaa2c6dac4 - Show all commits

View file

@ -32,7 +32,7 @@ int main() {
#endif
printf("Firmware version: %s\n", PROJECT_VERSION);
// WS2812 led(WS2812_PIN);
WS2812 led(WS2812_PIN);
wifi_enable(); // Enable Wifi in order to set time and retrieve data
@ -96,26 +96,22 @@ int main() {
while (currentTime < timestamp) {
size_t index = count % wasteDate.wasteTypes.size();
{
WS2812 led(WS2812_PIN);
switch (wasteDate.wasteTypes.at(index)) {
case Waste::GelberSack:
led.switchColor(Color::YELLOW);
break;
case Waste::Restmuell:
led.switchColor(Color::RED);
break;
case Waste::Papiertonne:
led.switchColor(Color::BLUE);
break;
case Waste::Problemstoffmobil:
led.switchColor(Color::CYAN);
break;
case Waste::Biotonne:
led.switchColor(Color::GREEN);
break;
}
switch (wasteDate.wasteTypes.at(index)) {
case Waste::GelberSack:
led.switchColor(Color::YELLOW);
break;
case Waste::Restmuell:
led.switchColor(Color::RED);
break;
case Waste::Papiertonne:
led.switchColor(Color::BLUE);
break;
case Waste::Problemstoffmobil:
led.switchColor(Color::CYAN);
break;
case Waste::Biotonne:
led.switchColor(Color::GREEN);
break;
}
auto timeLeft = timestamp - currentTime;
@ -131,10 +127,7 @@ int main() {
}
} else {
{
WS2812 led(WS2812_PIN);
led.blinkReady();
}
led.blinkReady();
sleep_until(static_cast<absolute_time_t>(timestamp));
}
}

View file

@ -1,13 +1,11 @@
#include "ws2812.h"
WS2812::WS2812(uint gpio, PIO pio, uint sm) : m_pio{pio}, m_sm{sm} {
m_offset = pio_add_program(m_pio, &ws2812_program);
ws2812_program_init(m_pio, m_sm, m_offset, gpio, 800000, true);
uint offset = pio_add_program(m_pio, &ws2812_program);
ws2812_program_init(m_pio, m_sm, offset, gpio, 800000, true);
switchColor(Color::OFF);
}
WS2812::~WS2812() { pio_remove_program(m_pio, &ws2812_program, m_offset); }
void WS2812::switchColor(Color color) { putPixel(static_cast<uint32_t>(color)); }
void WS2812::blinkReady() {

View file

@ -17,7 +17,6 @@ enum class Color : uint32_t {
class WS2812 {
public:
WS2812(uint gpio, PIO pio = pio0, uint sm = 0);
virtual ~WS2812();
void switchColor(Color color);
void blinkReady();
@ -25,5 +24,4 @@ class WS2812 {
void putPixel(uint32_t pixel_rgb);
PIO m_pio;
uint m_sm;
uint m_offset{0};
};