diff options
author | Ralf Schmitt <ralf@bunkertor.net> | 2014-04-08 21:02:46 +0200 |
---|---|---|
committer | Ralf Schmitt <ralf@bunkertor.net> | 2014-04-08 21:02:46 +0200 |
commit | 589d99b448e6085513799fbb183f6389d4df408d (patch) | |
tree | 3d6f83a71ffe03a2855046de58ba7ae9095f0733 /keyboard/lightsaber/backlight.c | |
parent | 5c63751790bca2d7e0c6f368bd446db8fe671848 (diff) | |
download | firmware-589d99b448e6085513799fbb183f6389d4df408d.tar.gz firmware-589d99b448e6085513799fbb183f6389d4df408d.tar.bz2 firmware-589d99b448e6085513799fbb183f6389d4df408d.zip |
New macro: ACTION_BACKLIGHT_LEVEL(level)
To have full control of the backlight level.
Diffstat (limited to 'keyboard/lightsaber/backlight.c')
-rw-r--r-- | keyboard/lightsaber/backlight.c | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/keyboard/lightsaber/backlight.c b/keyboard/lightsaber/backlight.c index b28200807..59b8b4a63 100644 --- a/keyboard/lightsaber/backlight.c +++ b/keyboard/lightsaber/backlight.c @@ -26,8 +26,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. * Backside PD6 (high) * TopRight PD7 (low) * F-Row PE6 (high) - * */ + void backlight_set(uint8_t level) { // Set as output. @@ -35,22 +35,52 @@ void backlight_set(uint8_t level) DDRD |= (1<<6) | (1<<7); DDRE |= (1<<6); - if(level & (1<<0)) + if (level & BACKLIGHT_ALPHA) { - PORTB &= ~(1<<1); - PORTB &= ~(1<<2); - PORTB &= ~(1<<3); - PORTD &= ~(1<<6); - PORTD |= (1<<7); - PORTE &= ~(1<<6); + PORTB |= (1<<1); } else { - PORTB |= (1<<1); + PORTB &= ~(1<<1); + } + if (level & BACKLIGHT_NUMERIC) + { PORTB |= (1<<2); + } + else + { + PORTB &= ~(1<<2); + } + if (level & BACKLIGHT_MODNUM) + { PORTB |= (1<<3); + } + else + { + PORTB &= ~(1<<3); + } + if (level & BACKLIGHT_BACKSIDE) + { PORTD |= (1<<6); + } + else + { + PORTD &= ~(1<<6); + } + if (level & BACKLIGHT_TOPRIGHT) + { PORTD &= ~(1<<7); + } + else + { + PORTD |= (1<<7); + } + if (level & BACKLIGHT_FROW) + { PORTE |= (1<<6); } + else + { + PORTE &= ~(1<<6); + } } |