diff options
| author | Jack Humbert <jack.humb@gmail.com> | 2015-08-16 17:52:21 -0400 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2015-08-16 17:52:21 -0400 |
| commit | 88704200a56aa210f6356cc76ba0e2fc9b781b49 (patch) | |
| tree | b69d60d9baf7fd009e24f6e2ae89c0ccb2c3e713 /keyboard/planck | |
| parent | f7bca5c41a638700022092dc0e506570c4712273 (diff) | |
| download | qmk_firmware-88704200a56aa210f6356cc76ba0e2fc9b781b49.tar.gz qmk_firmware-88704200a56aa210f6356cc76ba0e2fc9b781b49.zip | |
ok
Diffstat (limited to 'keyboard/planck')
| -rw-r--r-- | keyboard/planck/backlight.c | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/keyboard/planck/backlight.c b/keyboard/planck/backlight.c index 90b1db874..7eacaeed0 100644 --- a/keyboard/planck/backlight.c +++ b/keyboard/planck/backlight.c | |||
| @@ -7,43 +7,43 @@ | |||
| 7 | void backlight_init_ports() | 7 | void backlight_init_ports() |
| 8 | { | 8 | { |
| 9 | 9 | ||
| 10 | // Setup PB7 as output and output low. | 10 | Setup PB7 as output and output low. |
| 11 | // DDRB |= (1<<7); | 11 | DDRB |= (1<<7); |
| 12 | // PORTB &= ~(1<<7); | 12 | PORTB &= ~(1<<7); |
| 13 | 13 | ||
| 14 | // // Use full 16-bit resolution. | 14 | // Use full 16-bit resolution. |
| 15 | // ICR1 = 0xFFFF; | 15 | ICR1 = 0xFFFF; |
| 16 | 16 | ||
| 17 | // // I could write a wall of text here to explain... but TL;DW | 17 | // I could write a wall of text here to explain... but TL;DW |
| 18 | // // Go read the ATmega32u4 datasheet. | 18 | // Go read the ATmega32u4 datasheet. |
| 19 | // // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on | 19 | // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on |
| 20 | 20 | ||
| 21 | // // Pin PB7 = OCR1C (Timer 1, Channel C) | 21 | // Pin PB7 = OCR1C (Timer 1, Channel C) |
| 22 | // // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 | 22 | // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 |
| 23 | // // (i.e. start high, go low when counter matches.) | 23 | // (i.e. start high, go low when counter matches.) |
| 24 | // // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 | 24 | // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 |
| 25 | // // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 | 25 | // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 |
| 26 | 26 | ||
| 27 | // TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; | 27 | TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; |
| 28 | // TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; | 28 | TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; |
| 29 | 29 | ||
| 30 | backlight_init(); | 30 | backlight_init(); |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | void backlight_set(uint8_t level) | 33 | void backlight_set(uint8_t level) |
| 34 | { | 34 | { |
| 35 | // if ( level == 0 ) | 35 | if ( level == 0 ) |
| 36 | // { | 36 | { |
| 37 | // // Turn off PWM control on PB7, revert to output low. | 37 | // Turn off PWM control on PB7, revert to output low. |
| 38 | // TCCR1A &= ~(_BV(COM1C1)); | 38 | TCCR1A &= ~(_BV(COM1C1)); |
| 39 | // // CHANNEL = level << OFFSET | 0x0FFF; | 39 | // CHANNEL = level << OFFSET | 0x0FFF; |
| 40 | // CHANNEL = ((1 << level) - 1); | 40 | CHANNEL = ((1 << level) - 1); |
| 41 | // } | 41 | } |
| 42 | // else | 42 | else |
| 43 | // { | 43 | { |
| 44 | // // Turn on PWM control of PB7 | 44 | // Turn on PWM control of PB7 |
| 45 | // TCCR1A |= _BV(COM1C1); | 45 | TCCR1A |= _BV(COM1C1); |
| 46 | // // CHANNEL = level << OFFSET | 0x0FFF; | 46 | // CHANNEL = level << OFFSET | 0x0FFF; |
| 47 | // CHANNEL = ((1 << level) - 1); | 47 | CHANNEL = ((1 << level) - 1); |
| 48 | // } | 48 | } |
| 49 | } \ No newline at end of file | 49 | } \ No newline at end of file |
