From eb2795b4d649f062430c859012bc6bd8faa847ff Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 30 Oct 2015 00:48:17 -0400 Subject: atomic up-to-date --- keyboard/atomic/backlight.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'keyboard/atomic/backlight.c') diff --git a/keyboard/atomic/backlight.c b/keyboard/atomic/backlight.c index 06f103b4a..f69364b2a 100644 --- a/keyboard/atomic/backlight.c +++ b/keyboard/atomic/backlight.c @@ -36,14 +36,26 @@ void backlight_set(uint8_t level) { // Turn off PWM control on PB7, revert to output low. TCCR1A &= ~(_BV(COM1C1)); - // CHANNEL = level << OFFSET | 0x0FFF; - CHANNEL = ((1 << level) - 1); + CHANNEL = 0x0; + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); } - else + else if ( level == BACKLIGHT_LEVELS ) { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); // Turn on PWM control of PB7 TCCR1A |= _BV(COM1C1); - // CHANNEL = level << OFFSET | 0x0FFF; - CHANNEL = ((1 << level) - 1); + // Set the brightness + CHANNEL = 0xFFFF; + } + else + { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); } } \ No newline at end of file -- cgit v1.2.3-24-g4f1b