diff options
author | Tobias Matt <t.matt81+github@gmail.com> | 2016-05-13 10:08:29 +0200 |
---|---|---|
committer | Tobias Matt <t.matt81+github@gmail.com> | 2016-05-13 10:08:29 +0200 |
commit | 65645fb8cad05307b9faf9a897eefd5ae8c46dad (patch) | |
tree | c522c0cd320c4930b7532d892c0831b148c98e93 /keyboard/cluepad/backlight.c | |
parent | 4122ad3f7b0e0dc1083a54b51430c8d7207d74ef (diff) | |
parent | 69f05e1afd2e046938209e00db62d18efead4932 (diff) | |
download | qmk_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.c | 54 |
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; +} |