diff options
author | tmk <tmk@users.noreply.github.com> | 2014-04-09 10:02:53 +0900 |
---|---|---|
committer | tmk <tmk@users.noreply.github.com> | 2014-04-09 10:02:53 +0900 |
commit | 894a387d1fd8c823b5339e524e1f9336601ce2ef (patch) | |
tree | 3d6f83a71ffe03a2855046de58ba7ae9095f0733 /keyboard/lightsaber/backlight.c | |
parent | 5c63751790bca2d7e0c6f368bd446db8fe671848 (diff) | |
parent | 589d99b448e6085513799fbb183f6389d4df408d (diff) |
Merge pull request #110 from xauser/master
Enhanced Backlight Support
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 b28200807c..59b8b4a633 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); + } } |