diff options
| author | Toshiki Yagi <mrabbit@usagigoya.jp> | 2017-08-27 08:21:53 +0900 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2017-08-26 23:32:25 -0400 |
| commit | de315c54eb244821aef39e75c3f5d1c8e96d1273 (patch) | |
| tree | 2618504d2c2fc6f5c6b7f87573094c32fbec3226 | |
| parent | a6fe0320f5dbbeca1822d9b02159678fde3da8a5 (diff) | |
| download | qmk_firmware-de315c54eb244821aef39e75c3f5d1c8e96d1273.tar.gz qmk_firmware-de315c54eb244821aef39e75c3f5d1c8e96d1273.zip | |
make ergodone's led work well
| -rw-r--r-- | keyboards/ergodone/ergodone.c | 47 | ||||
| -rw-r--r-- | keyboards/ergodone/ergodone.h | 63 |
2 files changed, 98 insertions, 12 deletions
diff --git a/keyboards/ergodone/ergodone.c b/keyboards/ergodone/ergodone.c index 6b8d8a063..dd05a8def 100644 --- a/keyboards/ergodone/ergodone.c +++ b/keyboards/ergodone/ergodone.c | |||
| @@ -1,5 +1,52 @@ | |||
| 1 | #include "ergodone.h" | 1 | #include "ergodone.h" |
| 2 | 2 | ||
| 3 | extern inline void ergodox_board_led_on(void); | ||
| 4 | extern inline void ergodox_right_led_1_on(void); | ||
| 5 | extern inline void ergodox_right_led_2_on(void); | ||
| 6 | extern inline void ergodox_right_led_3_on(void); | ||
| 7 | extern inline void ergodox_right_led_on(uint8_t led); | ||
| 8 | |||
| 9 | extern inline void ergodox_board_led_off(void); | ||
| 10 | extern inline void ergodox_right_led_1_off(void); | ||
| 11 | extern inline void ergodox_right_led_2_off(void); | ||
| 12 | extern inline void ergodox_right_led_3_off(void); | ||
| 13 | extern inline void ergodox_right_led_off(uint8_t led); | ||
| 14 | |||
| 15 | void ergodox_led_init(void); | ||
| 16 | void ergodox_blink_all_leds(void); | ||
| 17 | |||
| 3 | void matrix_init_kb(void) { | 18 | void matrix_init_kb(void) { |
| 19 | ergodox_led_init(); | ||
| 20 | ergodox_blink_all_leds(); | ||
| 4 | matrix_init_user(); | 21 | matrix_init_user(); |
| 5 | } | 22 | } |
| 23 | |||
| 24 | void ergodox_led_init(void) | ||
| 25 | { | ||
| 26 | DDRB |= (1<<PB5 | 1<<PB6 | 1<<PB3); | ||
| 27 | PORTB &= ~(1<<PB5 | 1<<PB6 | 1<<PB3); | ||
| 28 | DDRB |= (1<<PB0); | ||
| 29 | PORTB |= (1<<PB0); | ||
| 30 | DDRD |= (1<<PB5); | ||
| 31 | PORTD |= (1<<PB5); | ||
| 32 | } | ||
| 33 | |||
| 34 | void ergodox_blink_all_leds(void) | ||
| 35 | { | ||
| 36 | ergodox_led_all_off(); | ||
| 37 | ergodox_led_all_set(LED_BRIGHTNESS_HI); | ||
| 38 | ergodox_right_led_1_on(); | ||
| 39 | _delay_ms(50); | ||
| 40 | ergodox_right_led_2_on(); | ||
| 41 | _delay_ms(50); | ||
| 42 | ergodox_right_led_3_on(); | ||
| 43 | _delay_ms(50); | ||
| 44 | ergodox_right_led_1_off(); | ||
| 45 | _delay_ms(50); | ||
| 46 | ergodox_right_led_2_off(); | ||
| 47 | _delay_ms(50); | ||
| 48 | ergodox_right_led_3_off(); | ||
| 49 | //ergodox_led_all_on(); | ||
| 50 | //_delay_ms(333); | ||
| 51 | ergodox_led_all_off(); | ||
| 52 | } | ||
diff --git a/keyboards/ergodone/ergodone.h b/keyboards/ergodone/ergodone.h index 9f6c8f841..0826e9521 100644 --- a/keyboards/ergodone/ergodone.h +++ b/keyboards/ergodone/ergodone.h | |||
| @@ -10,18 +10,57 @@ | |||
| 10 | 10 | ||
| 11 | void init_ergodox(void); | 11 | void init_ergodox(void); |
| 12 | 12 | ||
| 13 | inline void ergodox_right_led_1_off(void) {} | 13 | inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<PB5); PORTB &= ~(1<<PB5); } |
| 14 | inline void ergodox_right_led_1_on(void) {} | 14 | inline void ergodox_right_led_1_on(void) { DDRB |= (1<<PB5); PORTB |= (1<<PB5); } |
| 15 | inline void ergodox_right_led_2_off(void) {} | 15 | inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<PB6); PORTB &= ~(1<<PB6); } |
| 16 | inline void ergodox_right_led_2_on(void) {} | 16 | inline void ergodox_right_led_2_on(void) { DDRB |= (1<<PB6); PORTB |= (1<<PB6); } |
| 17 | inline void ergodox_right_led_3_off(void) {} | 17 | inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<PB3); PORTB &= ~(1<<PB3); } |
| 18 | inline void ergodox_right_led_3_on(void) {} | 18 | inline void ergodox_right_led_3_on(void) { DDRB |= (1<<PB3); PORTB |= (1<<PB3); } |
| 19 | inline void ergodox_right_led_on(uint8_t l) {} | 19 | inline void ergodox_right_led_on(uint8_t l) { |
| 20 | inline void ergodox_right_led_off(uint8_t l) {} | 20 | switch (l) { |
| 21 | inline void ergodox_board_led_off(void) {} | 21 | case 1: |
| 22 | inline void ergodox_board_led_on(void) {} | 22 | ergodox_right_led_1_on(); |
| 23 | inline void ergodox_led_all_on(void) {} | 23 | break; |
| 24 | inline void ergodox_led_all_off(void) {} | 24 | case 2: |
| 25 | ergodox_right_led_2_on(); | ||
| 26 | break; | ||
| 27 | case 3: | ||
| 28 | ergodox_right_led_3_on(); | ||
| 29 | break; | ||
| 30 | default: | ||
| 31 | break; | ||
| 32 | } | ||
| 33 | } | ||
| 34 | |||
| 35 | inline void ergodox_right_led_off(uint8_t l) { | ||
| 36 | switch (l) { | ||
| 37 | case 1: | ||
| 38 | ergodox_right_led_1_off(); | ||
| 39 | break; | ||
| 40 | case 2: | ||
| 41 | ergodox_right_led_2_off(); | ||
| 42 | break; | ||
| 43 | case 3: | ||
| 44 | ergodox_right_led_3_off(); | ||
| 45 | break; | ||
| 46 | default: | ||
| 47 | break; | ||
| 48 | } | ||
| 49 | } | ||
| 50 | inline void ergodox_board_led_off(void) { DDRB &= ~(1<<PB0); PORTB |= (1<<PB0); } | ||
| 51 | inline void ergodox_board_led_on(void) { DDRB |= (1<<PB0); PORTB &= ~(1<<PB0); } | ||
| 52 | inline void ergodox_led_all_on(void) { | ||
| 53 | ergodox_right_led_1_on(); | ||
| 54 | ergodox_right_led_2_on(); | ||
| 55 | ergodox_right_led_3_on(); | ||
| 56 | ergodox_board_led_on(); | ||
| 57 | } | ||
| 58 | inline void ergodox_led_all_off(void) { | ||
| 59 | ergodox_right_led_1_off(); | ||
| 60 | ergodox_right_led_2_off(); | ||
| 61 | ergodox_right_led_3_off(); | ||
| 62 | ergodox_board_led_off(); | ||
| 63 | } | ||
| 25 | inline void ergodox_right_led_1_set(uint8_t n) {} | 64 | inline void ergodox_right_led_1_set(uint8_t n) {} |
| 26 | inline void ergodox_right_led_2_set(uint8_t n) {} | 65 | inline void ergodox_right_led_2_set(uint8_t n) {} |
| 27 | inline void ergodox_right_led_3_set(uint8_t n) {} | 66 | inline void ergodox_right_led_3_set(uint8_t n) {} |
