diff options
author | Didier Loiseau <didierloiseau+git@gmail.com> | 2016-09-11 01:26:47 +0200 |
---|---|---|
committer | Didier Loiseau <didierloiseau+git@gmail.com> | 2016-09-11 01:26:47 +0200 |
commit | b9014c757599ca288be07629ad1d00ef66c033f1 (patch) | |
tree | ba056e704e76327c597e25d1be200c4c991efeb8 /keyboards/cluecard/cluecard.c | |
parent | 60a826923d5a6b0dbe416b0837608149ab82e470 (diff) | |
parent | 5010df3d8b68a53c382b853c7c2e45922975b631 (diff) | |
download | qmk_firmware-b9014c757599ca288be07629ad1d00ef66c033f1.tar.gz |
Merge remote-tracking branch 'remotes/jackhumbert/master' into bépo
Diffstat (limited to 'keyboards/cluecard/cluecard.c')
-rw-r--r-- | keyboards/cluecard/cluecard.c | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/keyboards/cluecard/cluecard.c b/keyboards/cluecard/cluecard.c new file mode 100644 index 000000000..81db252d2 --- /dev/null +++ b/keyboards/cluecard/cluecard.c @@ -0,0 +1,98 @@ +#include "cluecard.h" +#define BL_RED OCR1B +#define BL_GREEN OCR1A +#define BL_BLUE OCR1C + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + +void backlight_init_ports(void) +{ + // Set B5, B6, and B7 as output + DDRB |= (1<<7)|(1<<6)|(1<<5); + + // Setup PWM + ICR1 = 0xFFFF; + TCCR1A = 0b10101010; + TCCR1B = 0b00011001; + + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; +} + +void backlight_set(uint8_t level) +{ + // Set the RGB color + switch (level) + { + case 0: + // Off + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; + break; + case 1: + // Red + BL_RED = 0x0000; + BL_GREEN = 0xFFFF; + BL_BLUE = 0xFFFF; + break; + case 2: + // Green + BL_RED = 0xFFFF; + BL_GREEN = 0x0000; + BL_BLUE = 0xFFFF; + break; + case 3: + // Blue + BL_RED = 0xFFFF; + BL_GREEN = 0xFFFF; + BL_BLUE = 0x0000; + break; + case 4: + // Magenta + BL_RED = 0x4000; + BL_GREEN = 0x4000; + BL_BLUE = 0x4000; + break; + case 5: + // Purple + BL_RED = 0x0000; + BL_GREEN = 0xFFFF; + BL_BLUE = 0x0000; + break; + case 6: + // Yellow + BL_RED = 0x0000; + BL_GREEN = 0x0000; + BL_BLUE = 0xFFFF; + break; + default: + xprintf("Unknown level: %d\n", level); + } +} |