handle watch variant with red/blue LED

This commit is contained in:
Joey Castillo
2021-08-31 20:28:36 -04:00
parent a232999e93
commit 71e411d860
4 changed files with 34 additions and 10 deletions

View File

@@ -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));
}
}