diff options
author | Christopher Browne <cbbrowne@ca.afilias.info> | 2016-06-30 12:38:48 -0400 |
---|---|---|
committer | Christopher Browne <cbbrowne@ca.afilias.info> | 2016-06-30 12:38:48 -0400 |
commit | 44a5f7630f18b40b36270d49449a43cd42b802f0 (patch) | |
tree | 9d29ee26496a458bf161eeb59dab5e12d85cb3aa /keyboards/cluepad/cluepad.c | |
parent | c9f509f0168f6d11e743a9d2e37964c05e45672b (diff) | |
parent | a8b55f8c858933a0f7641f7bf2dede640235aa70 (diff) |
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
Diffstat (limited to 'keyboards/cluepad/cluepad.c')
-rw-r--r-- | keyboards/cluepad/cluepad.c | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/keyboards/cluepad/cluepad.c b/keyboards/cluepad/cluepad.c index cbbdccb300..1867b617fd 100644 --- a/keyboards/cluepad/cluepad.c +++ b/keyboards/cluepad/cluepad.c @@ -1,15 +1,60 @@ #include "cluepad.h" +int pwm_level; + void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up matrix_init_user(); - #ifdef BACKLIGHT_ENABLE - init_backlight_pin(); - #endif - // JTAG disable for PORT F. write JTD bit twice within four cycles. MCUCR |= (1<<JTD); MCUCR |= (1<<JTD); }; + +void led_set_kb(uint8_t usb_led) +{ + print("led_set\n"); +} + +void backlight_init_ports(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; +} |