summaryrefslogtreecommitdiff
path: root/keyboard/cluepad/backlight.c
diff options
context:
space:
mode:
authorTobias Matt <t.matt81+github@gmail.com>2016-05-13 10:08:29 +0200
committerTobias Matt <t.matt81+github@gmail.com>2016-05-13 10:08:29 +0200
commit65645fb8cad05307b9faf9a897eefd5ae8c46dad (patch)
treec522c0cd320c4930b7532d892c0831b148c98e93 /keyboard/cluepad/backlight.c
parent4122ad3f7b0e0dc1083a54b51430c8d7207d74ef (diff)
parent69f05e1afd2e046938209e00db62d18efead4932 (diff)
downloadqmk_firmware-65645fb8cad05307b9faf9a897eefd5ae8c46dad.tar.gz
qmk_firmware-65645fb8cad05307b9faf9a897eefd5ae8c46dad.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'keyboard/cluepad/backlight.c')
-rw-r--r--keyboard/cluepad/backlight.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/keyboard/cluepad/backlight.c b/keyboard/cluepad/backlight.c
new file mode 100644
index 0000000000..a9caed1df8
--- /dev/null
+++ b/keyboard/cluepad/backlight.c
@@ -0,0 +1,54 @@
+#include <avr/io.h>
+#include "backlight.h"
+#include "led.h"
+
+#include "print.h"
+
+int pwm_level;
+
+void led_set_kb(uint8_t usb_led)
+{
+ print("led_set\n");
+}
+
+void init_backlight_pin(void)
+{
+ // Set C7 to output
+ DDRC |= (1<<7);
+
+ // Initialize the timer
+ TC4H = 0x03;
+ OCR4C = 0xFF;
+ TCCR4A = 0b10000010;
+ TCCR4B = 0b00000001;
+}
+
+void backlight_set(uint8_t level)
+{
+ // Determine the PWM level
+ switch (level)
+ {
+ case 0:
+ // 33%
+ pwm_level = 0x54;
+ break;
+ case 1:
+ // 66%
+ pwm_level = 0xA8;
+ break;
+ case 2:
+ // 100%
+ pwm_level = 0xFF;
+ break;
+ case 3:
+ // 0%
+ pwm_level = 0x00;
+ break;
+ default:
+ xprintf("Unknown level: %d\n", level);
+ }
+
+ // Write the PWM level to the timer
+ TC4H = pwm_level >> 8;
+ OCR4A = 0xFF & pwm_level;
+}