summaryrefslogtreecommitdiff
path: root/keyboard/lightsaber/backlight.c
diff options
context:
space:
mode:
authortmk2014-04-09 10:02:53 +0900
committertmk2014-04-09 10:02:53 +0900
commit894a387d1fd8c823b5339e524e1f9336601ce2ef (patch)
tree3d6f83a71ffe03a2855046de58ba7ae9095f0733 /keyboard/lightsaber/backlight.c
parent5c63751790bca2d7e0c6f368bd446db8fe671848 (diff)
parent589d99b448e6085513799fbb183f6389d4df408d (diff)
Merge pull request #110 from xauser/master
Enhanced Backlight Support
Diffstat (limited to 'keyboard/lightsaber/backlight.c')
-rw-r--r--keyboard/lightsaber/backlight.c48
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);
+ }
}