handle watch variant with red/blue LED
This commit is contained in:
@@ -22,6 +22,14 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifdef WATCH_SWAP_LED_PINS
|
||||
#define WATCH_RED_CHANNEL 3
|
||||
#define WATCH_GREEN_CHANNEL 2
|
||||
#else
|
||||
#define WATCH_RED_CHANNEL 2
|
||||
#define WATCH_GREEN_CHANNEL 3
|
||||
#endif
|
||||
|
||||
void watch_enable_leds() {
|
||||
if (!hri_tcc_get_CTRLA_reg(TCC0, TCC_CTRLA_ENABLE)) {
|
||||
_watch_enable_tcc();
|
||||
@@ -45,8 +53,8 @@ void watch_disable_led(bool unused) {
|
||||
void watch_set_led_color(uint8_t red, uint8_t green) {
|
||||
if (hri_tcc_get_CTRLA_reg(TCC0, TCC_CTRLA_ENABLE)) {
|
||||
uint32_t period = hri_tcc_get_PER_reg(TCC0, TCC_PER_MASK);
|
||||
hri_tcc_write_CCBUF_reg(TCC0, 2, ((period * red * 1000ull) / 255000ull));
|
||||
hri_tcc_write_CCBUF_reg(TCC0, 3, ((period * green * 1000ull) / 255000ull));
|
||||
hri_tcc_write_CCBUF_reg(TCC0, WATCH_RED_CHANNEL, ((period * red * 1000ull) / 255000ull));
|
||||
hri_tcc_write_CCBUF_reg(TCC0, WATCH_GREEN_CHANNEL, ((period * green * 1000ull) / 255000ull));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user