diff options
author | skullydazed <skullydazed@users.noreply.github.com> | 2017-09-30 01:17:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-30 01:17:30 +0200 |
commit | 5fd68266f5d90b2c7045f44f678d71b782907752 (patch) | |
tree | 443e70a3f0dcebadd39a0c96857130546cc690a7 /keyboards/clueboard_17/clueboard_17.c | |
parent | b736f25e85171fceb06f01cf45a45f84dd0a4911 (diff) | |
download | qmk_firmware-5fd68266f5d90b2c7045f44f678d71b782907752.tar.gz qmk_firmware-5fd68266f5d90b2c7045f44f678d71b782907752.tar.xz |
Clueboard 60% support (#1746)
* initial clueboard_60 support
* LED lighting support
* fix the clueboard->clueboard_66 rename
* Add layout support to clueboard_60
* Fix the 60_iso layout so it's actually iso
* add a default keymap for AEK layout
* fix clueboard_17
* Fixup the ISO layouts
* Fix the `wait_ms()/wait_us()` definitions for chibios
* Fix up the wait_ms/wait_us hack. Reduce stack size.
* Add a missing #include "wait.h"
* commit files that should have already been comitted
Diffstat (limited to 'keyboards/clueboard_17/clueboard_17.c')
-rw-r--r-- | keyboards/clueboard_17/clueboard_17.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/keyboards/clueboard_17/clueboard_17.c b/keyboards/clueboard_17/clueboard_17.c new file mode 100644 index 000000000..04cc81217 --- /dev/null +++ b/keyboards/clueboard_17/clueboard_17.c @@ -0,0 +1,60 @@ +#include "clueboard_17.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(); + + // 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; +} |