]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/clueboard/card/cluecard.c
Reorganize clueboard into a single directory (#1855)
[qmk_firmware.git] / keyboards / clueboard / card / cluecard.c
diff --git a/keyboards/clueboard/card/cluecard.c b/keyboards/clueboard/card/cluecard.c
new file mode 100644 (file)
index 0000000..81db252
--- /dev/null
@@ -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);
+       }
+}