From 464c8e274f993d3571fe5ea5e836fe55a3912ffe Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 21 Jun 2016 22:09:41 -0400 Subject: [PATCH] adds backlight levels to the satan keyboard (#431) * enable 4 levels * remove breathing stuff * update channels, comments, hex --- keyboard/satan/Makefile | 4 -- keyboard/satan/backlight.c | 24 -------- keyboard/satan/config.h | 2 +- keyboard/satan/keymaps/default/compiled.hex | Bin 67248 -> 69387 bytes keyboard/satan/satan.c | 62 +++++++++++++++++++- 5 files changed, 61 insertions(+), 31 deletions(-) delete mode 100644 keyboard/satan/backlight.c diff --git a/keyboard/satan/Makefile b/keyboard/satan/Makefile index 8090c59c45..0ad71007e1 100644 --- a/keyboard/satan/Makefile +++ b/keyboard/satan/Makefile @@ -68,10 +68,6 @@ AUDIO_ENABLE ?= no UNICODE_ENABLE ?= no # Unicode BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID -#ifdef BACKLIGHT_ENABLE - SRC := backlight.c $(SRC) -#endif - ifndef QUANTUM_DIR include ../../Makefile endif diff --git a/keyboard/satan/backlight.c b/keyboard/satan/backlight.c deleted file mode 100644 index 4240b09164..0000000000 --- a/keyboard/satan/backlight.c +++ /dev/null @@ -1,24 +0,0 @@ - -#include -#include "backlight.h" -#include "print.h" - -void init_backlight_pin(void) { - print("init_backlight_pin()\n"); - // Set our LED pins as output - DDRB |= (1<<6); - - // Set our LED pins low - PORTB &= ~(1<<6); -} - -void backlight_set(uint8_t level) { - if ( level == 0 ) { - // Turn off light - PORTB |= (1<<6); - } else { - // Turn on light - PORTB &= ~(1<<6); - } -} - diff --git a/keyboard/satan/config.h b/keyboard/satan/config.h index aea9254e8d..aa2dca1a6a 100644 --- a/keyboard/satan/config.h +++ b/keyboard/satan/config.h @@ -59,7 +59,7 @@ along with this program. If not, see . /* Backlight configuration */ -#define BACKLIGHT_LEVELS 1 +#define BACKLIGHT_LEVELS 4 /* Underlight configuration */ diff --git a/keyboard/satan/keymaps/default/compiled.hex b/keyboard/satan/keymaps/default/compiled.hex index 8f4957d1c717206394ae9e9103f44550caed1861..cd680d64dd3994388f8a5a46dcfe3b3dd049040a 100644 GIT binary patch literal 69387 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 literal 67248 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 diff --git a/keyboard/satan/satan.c b/keyboard/satan/satan.c index 40bd9dcde4..092eb4665d 100644 --- a/keyboard/satan/satan.c +++ b/keyboard/satan/satan.c @@ -14,6 +14,64 @@ void matrix_scan_user(void) { // leave these blank }; + +#ifdef BACKLIGHT_ENABLE + +void backlight_init_ports() +{ + + // Setup PB6 as output and output low. + DDRB |= (1<<6); + PORTB &= ~(1<<6); + + // Use full 16-bit resolution. + ICR1 = 0xFFFF; + + // I could write a wall of text here to explain... but TL;DW + // Go read the ATmega32u4 datasheet. + // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on + + // Pin PB6 = OCR1B (Timer 1, Channel C) + // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 + // (i.e. start high, go low when counter matches.) + // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 + // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 + + TCCR1A = _BV(COM1B1) | _BV(WGM11); // = 0b00001010; + TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; + + backlight_init(); +} + +void backlight_set(uint8_t level) +{ + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB6)); + + if ( level == 0 ) + { + // Turn off PWM control on PB6, revert to output low. + TCCR1A &= ~(_BV(COM1B1)); + OCR1B = 0x0; + } + else if ( level == BACKLIGHT_LEVELS ) + { + // Turn on PWM control of PB6 + TCCR1A |= _BV(COM1B1); + // Set the brightness + OCR1B = 0xFFFF; + } + else + { + // Turn on PWM control of PB6 + TCCR1A |= _BV(COM1B1); + // Set the brightness + OCR1B = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } +} + +#endif + void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -23,7 +81,7 @@ void matrix_init_kb(void) { led_init_ports(); #ifdef BACKLIGHT_ENABLE - init_backlight_pin(); + backlight_init_ports(); #endif }; @@ -33,4 +91,4 @@ void matrix_scan_kb(void) { if (matrix_scan_user) { (*matrix_scan_user)(); } -}; +}; \ No newline at end of file