Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 31 additions & 31 deletions examples/chapter09_08a/src/mcal/avr/mcal_led_rgb_ws2812.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////
// Copyright Christopher Kormanyos 2017 - 2023.
// Copyright Christopher Kormanyos 2017 - 2025.
// Distributed under the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
Expand All @@ -12,8 +12,8 @@

#include <mcal_cpu.h>
#include <mcal_irq.h>
#include <mcal_port.h>
#include <mcal_led/mcal_led_rgb_base.h>
#include <mcal_port.h>

namespace mcal { namespace led {

Expand Down Expand Up @@ -68,38 +68,38 @@
{
using base_class_type = mcal::led::led_rgb_base;

const auto red = static_cast<std::uint8_t>(base_class_type::get_hue_r());
const auto green = static_cast<std::uint8_t>(base_class_type::get_hue_g());
const auto blue = static_cast<std::uint8_t>(base_class_type::get_hue_b());
const auto red = static_cast<std::uint_fast8_t>(base_class_type::get_hue_r());
const auto green = static_cast<std::uint_fast8_t>(base_class_type::get_hue_g());
const auto blue = static_cast<std::uint_fast8_t>(base_class_type::get_hue_b());

mcal::irq::disable_all();

MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(green & static_cast<std::uint8_t>(UINT8_C(0x80))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(green & static_cast<std::uint8_t>(UINT8_C(0x40))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(green & static_cast<std::uint8_t>(UINT8_C(0x20))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(green & static_cast<std::uint8_t>(UINT8_C(0x10))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(green & static_cast<std::uint8_t>(UINT8_C(0x08))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(green & static_cast<std::uint8_t>(UINT8_C(0x04))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(green & static_cast<std::uint8_t>(UINT8_C(0x02))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(green & static_cast<std::uint8_t>(UINT8_C(0x01))) == static_cast<std::uint8_t>(UINT8_C(0)));

MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(red & static_cast<std::uint8_t>(UINT8_C(0x80))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(red & static_cast<std::uint8_t>(UINT8_C(0x40))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(red & static_cast<std::uint8_t>(UINT8_C(0x20))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(red & static_cast<std::uint8_t>(UINT8_C(0x10))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(red & static_cast<std::uint8_t>(UINT8_C(0x08))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(red & static_cast<std::uint8_t>(UINT8_C(0x04))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(red & static_cast<std::uint8_t>(UINT8_C(0x02))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(red & static_cast<std::uint8_t>(UINT8_C(0x01))) == static_cast<std::uint8_t>(UINT8_C(0)));

MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(blue & static_cast<std::uint8_t>(UINT8_C(0x80))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(blue & static_cast<std::uint8_t>(UINT8_C(0x40))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(blue & static_cast<std::uint8_t>(UINT8_C(0x20))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(blue & static_cast<std::uint8_t>(UINT8_C(0x10))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(blue & static_cast<std::uint8_t>(UINT8_C(0x08))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(blue & static_cast<std::uint8_t>(UINT8_C(0x04))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(blue & static_cast<std::uint8_t>(UINT8_C(0x02))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint8_t>(blue & static_cast<std::uint8_t>(UINT8_C(0x01))) == static_cast<std::uint8_t>(UINT8_C(0)));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) == std::uint_fast8_t { UINT8_C(0) });

MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) == std::uint_fast8_t { UINT8_C(0) });

MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) == std::uint_fast8_t { UINT8_C(0) });

mcal::irq::enable_all();
}
Expand Down
54 changes: 26 additions & 28 deletions examples/chapter09_08b/src/app/led/app_led.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,25 @@ namespace app
}
}

namespace
{
using app_led_monochrome_timer_type = util::timer<std::uint32_t>;
using app_led_rgb_timer_type = util::timer<std::uint16_t>;

auto app_led_monochrome_timer = static_cast<app_led_monochrome_timer_type>(app_led_monochrome_timer_type::seconds(UINT8_C(1)));
auto app_led_rgb_timer = static_cast<app_led_rgb_timer_type>(app_led_rgb_timer_type::milliseconds(UINT8_C(30)));

std::uint_fast8_t app_led_hue_r { UINT8_C(255) };
std::uint_fast8_t app_led_hue_g { UINT8_C(0) };
std::uint_fast8_t app_led_hue_b { UINT8_C(0) };
}

auto app::led::task_init() -> void
{
mcal::led::led0().toggle();

mcal::led::led_rgb0().set_color(app_led_hue_r, app_led_hue_g, app_led_hue_b);
mcal::led::led_rgb0().set_color(UINT8_C(255), UINT8_C(0), UINT8_C(0));
}

auto app::led::task_func() -> void
{
using app_led_monochrome_timer_type = util::timer<std::uint32_t>;
using app_led_rgb_timer_type = util::timer<std::uint16_t>;

static auto app_led_monochrome_timer = static_cast<app_led_monochrome_timer_type>(app_led_monochrome_timer_type::seconds(UINT8_C(1)));
static auto app_led_rgb_timer = static_cast<app_led_rgb_timer_type>(app_led_rgb_timer_type::milliseconds(UINT8_C(30)));

static std::uint_fast8_t app_led_hue_r { UINT8_C(255) };
static std::uint_fast8_t app_led_hue_g { UINT8_C(0) };
static std::uint_fast8_t app_led_hue_b { UINT8_C(0) };

if(app_led_monochrome_timer.timeout())
{
// Toggle the monochrome user LED at 1/2 Hz.
Expand All @@ -52,27 +49,28 @@ auto app::led::task_func() -> void
app_led_monochrome_timer.start_interval(app_led_monochrome_timer_type::seconds(1U));
}

// Define the color transition states.
enum class color_transition_type
{
red_to_yellow,
yellow_to_green,
green_to_cyan,
cyan_to_blue,
blue_to_magenta,
magenta_to_red
};


// Initialize the color transition state.
static auto color_transition_state = color_transition_type::red_to_yellow;

if(app_led_rgb_timer.timeout())
{
// Animate the RGB LED with the colors of the spectrum.

// Implement the enhanced RGB-color-light-show mentioned
// in the readme markdown of this example.

// Define the color transition states.
enum class color_transition_type
{
red_to_yellow,
yellow_to_green,
green_to_cyan,
cyan_to_blue,
blue_to_magenta,
magenta_to_red
};

// Initialize the color transition state.
static auto color_transition_state = color_transition_type::red_to_yellow;

const auto rgb_hue_sum =
static_cast<std::uint_fast16_t>
(
Expand Down
2 changes: 1 addition & 1 deletion examples/chapter09_08b/src/mcal/stm32f100/mcal_led_rgb.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////
// Copyright Christopher Kormanyos 2017 - 2023.
// Copyright Christopher Kormanyos 2017 - 2025.
// Distributed under the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
Expand Down
56 changes: 28 additions & 28 deletions examples/chapter09_08b/src/mcal/stm32f100/mcal_led_rgb_ws2812.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@
#define MCAL_LED_RGB_WS2812_NOPS_10 { MCAL_LED_RGB_WS2812_NOPS_05 MCAL_LED_RGB_WS2812_NOPS_05 }

#define MCAL_LED_RGB_WS2812_PUSH_DATA(next_bit_is_zero) port_pin_type::set_pin_high(); \
if (next_bit_is_zero) { port_pin_type::set_pin_low(); MCAL_LED_RGB_WS2812_NOPS_10 } \
else { MCAL_LED_RGB_WS2812_NOPS_06 port_pin_type::set_pin_low(); MCAL_LED_RGB_WS2812_NOPS_02 MCAL_LED_RGB_WS2812_NOPS_01 }
if (next_bit_is_zero) { port_pin_type::set_pin_low(); MCAL_LED_RGB_WS2812_NOPS_10 MCAL_LED_RGB_WS2812_NOPS_02 } \
else { MCAL_LED_RGB_WS2812_NOPS_06 MCAL_LED_RGB_WS2812_NOPS_02 port_pin_type::set_pin_low(); MCAL_LED_RGB_WS2812_NOPS_05 }

template<typename PortPinType,
const unsigned LedCount> auto led_rgb_ws2812<PortPinType, LedCount>::push_color() -> void
Expand All @@ -76,32 +76,32 @@

mcal::irq::disable_all();

MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) != std::uint_fast8_t { UINT8_C(0) }));

MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) != std::uint_fast8_t { UINT8_C(0) }));

MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA((static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) != std::uint_fast8_t { UINT8_C(0) }));
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(green & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) == std::uint_fast8_t { UINT8_C(0) });

MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(red & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) == std::uint_fast8_t { UINT8_C(0) });

MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x80))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x40))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x20))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x10))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x08))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x04))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x02))) == std::uint_fast8_t { UINT8_C(0) });
MCAL_LED_RGB_WS2812_PUSH_DATA(static_cast<std::uint_fast8_t>(blue & static_cast<std::uint_fast8_t>(UINT8_C(0x01))) == std::uint_fast8_t { UINT8_C(0) });

mcal::irq::enable_all();
}
Expand Down
Loading