1
0
Fork 0

Fixed brightness control; Reduced number of brightness levels to 4.

This commit is contained in:
Ante Vukorepa 2015-07-25 17:11:31 +02:00
parent b8c8ecbcd6
commit 1f52d60ef1
2 changed files with 20 additions and 11 deletions

View file

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