{
// 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
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
-/* NOTE: this is the max value of 0..BACKLIGHT_LEVELS so really 16 levels. */
-#define BACKLIGHT_LEVELS 15
+#define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
-//#define NO_DEBUG
+#define NO_DEBUG
/* disable print */
-//#define NO_PRINT
+#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER