diff options
author | Jack Humbert <[email protected]> | 2016-06-23 22:18:20 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2016-06-23 22:18:20 -0400 |
commit | 13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b (patch) | |
tree | 2777e5c95bad3f5a9773fc58524a6ad99df63738 /keyboards/clueboard2/clueboard2.c | |
parent | ba116ceb496011bb35ce074a3ba8c2448f059260 (diff) | |
download | qmk_firmware-13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b.tar.gz qmk_firmware-13bb6b4b7fdd2b3e419d0f89c93fb980b00eeb9b.zip |
Backlight abstraction and other changes (#439)
* redoes matrix pins, abstracts backlight code for B5,6,7
* slimming down keyboard stuff, backlight breathing implemented
* don't call backlight init when no pin
* cleans up user/kb/quantum calls, keyboard files
* fix pvc atomic
* replaces CHANNEL with correct var in breathing
* removes .hexs, updates readmes, updates template
* cleans-up clueboards, readmes to lowercase
* updates readme
Diffstat (limited to 'keyboards/clueboard2/clueboard2.c')
-rw-r--r-- | keyboards/clueboard2/clueboard2.c | 79 |
1 files changed, 51 insertions, 28 deletions
diff --git a/keyboards/clueboard2/clueboard2.c b/keyboards/clueboard2/clueboard2.c index 8493c564c8..d78ffed9ba 100644 --- a/keyboards/clueboard2/clueboard2.c +++ b/keyboards/clueboard2/clueboard2.c @@ -1,40 +1,63 @@ #include "clueboard2.h" -#ifdef BACKLIGHT_ENABLE -#include "backlight.h" -#endif - -__attribute__ ((weak)) -void matrix_init_user(void) { - // leave these blank -}; - -__attribute__ ((weak)) -void matrix_scan_user(void) { - // leave these blank -}; - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up - if (matrix_init_user) { - (*matrix_init_user)(); - } + matrix_init_user(); led_init_ports(); - #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 matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; +void led_init_ports() { + // * Set our LED pins as output + DDRB |= (1<<4); +} + +void led_set_kb(uint8_t usb_led) { + if (usb_led & (1<<USB_LED_CAPS_LOCK)) { + // Turn capslock on + PORTB |= (1<<4); + } else { + // Turn capslock off + PORTB &= ~(1<<4); + } +} + +/* Clueboard 2.0 LED locations: + * + * Capslock: B4, pull high to turn on + * LCtrl: Shared with Capslock, DO NOT INSTALL LED'S IN BOTH + * Page Up: B7, pull high to turn on + * Escape: D6, pull high to turn on + * Arrows: D4, pull high to turn on + */ + +void backlight_init_ports(void) { + print("init_backlight_pin()\n"); + // Set our LED pins as output + DDRD |= (1<<6); // Esc + DDRB |= (1<<7); // Page Up + DDRD |= (1<<4); // Arrows + + // Set our LED pins low + PORTD &= ~(1<<6); // Esc + PORTB &= ~(1<<7); // Page Up + PORTD &= ~(1<<4); // Arrows +} + +void backlight_set(uint8_t level) { + if ( level == 0 ) { + // Turn off light + PORTD |= (1<<6); // Esc + PORTB |= (1<<7); // Page Up + PORTD |= (1<<4); // Arrows + } else { + // Turn on light + PORTD &= ~(1<<6); // Esc + PORTB &= ~(1<<7); // Page Up + PORTD &= ~(1<<4); // Arrows + } +} |