REDAC HybridController
Firmware for LUCIDAC/REDAC Teensy
Loading...
Searching...
No Matches
leds.cpp
Go to the documentation of this file.
1
2#include "teensy/leds.h"
3
5 : led_register(bus::address_from_tuple(bus::BACKPLANE_BADDR, LED_REGISTER_IDX), true),
6 led_register_store(bus::address_from_tuple(bus::BACKPLANE_BADDR, LED_REGISTER_STORE_IDX)),
7 led_register_reset(bus::address_from_tuple(bus::BACKPLANE_BADDR, LED_REGISTER_RESET_IDX)) {}
8
9FLASHMEM bool platform::TeensyLEDs::set(const uint8_t led, bool on) {
10 if (led > 7)
11 return false;
12
13 if (on)
14 led_states |= (1 << led);
15 else
16 led_states &= ~(1 << led);
17
18 return true;
19}
20
21FLASHMEM void platform::TeensyLEDs::set_all(const uint8_t states) { led_states = states; }
22
24 led_states = 0;
25 led_register_reset.trigger();
26}
27
28FLASHMEM uint8_t platform::TeensyLEDs::get_all() const { return led_states; }
29
30FLASHMEM utils::status platform::TeensyLEDs::write_to_hardware() const {
31 bool ret = led_register.transfer8(led_states);
32 led_register_store.trigger();
33 return utils::status(ret);
34}
uint8_t get_all() const override
Returns the current state of the front leds.
Definition leds.cpp:28
void reset() override
Disables all eight front leds.
Definition leds.cpp:23
bool set(const uint8_t led, bool on) override
Sets specified front led to the specified value.
Definition leds.cpp:9
void set_all(const uint8_t states) override
Sets all eight front leds at once.
Definition leds.cpp:21
utils::status write_to_hardware() const override
Definition leds.cpp:30
Definition bus.h:21