aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToshiki Yagi <mrabbit@usagigoya.jp>2017-08-27 08:21:53 +0900
committerJack Humbert <jack.humb@gmail.com>2017-08-26 23:32:25 -0400
commitde315c54eb244821aef39e75c3f5d1c8e96d1273 (patch)
tree2618504d2c2fc6f5c6b7f87573094c32fbec3226
parenta6fe0320f5dbbeca1822d9b02159678fde3da8a5 (diff)
downloadqmk_firmware-de315c54eb244821aef39e75c3f5d1c8e96d1273.tar.gz
qmk_firmware-de315c54eb244821aef39e75c3f5d1c8e96d1273.zip
make ergodone's led work well
-rw-r--r--keyboards/ergodone/ergodone.c47
-rw-r--r--keyboards/ergodone/ergodone.h63
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
3extern inline void ergodox_board_led_on(void);
4extern inline void ergodox_right_led_1_on(void);
5extern inline void ergodox_right_led_2_on(void);
6extern inline void ergodox_right_led_3_on(void);
7extern inline void ergodox_right_led_on(uint8_t led);
8
9extern inline void ergodox_board_led_off(void);
10extern inline void ergodox_right_led_1_off(void);
11extern inline void ergodox_right_led_2_off(void);
12extern inline void ergodox_right_led_3_off(void);
13extern inline void ergodox_right_led_off(uint8_t led);
14
15void ergodox_led_init(void);
16void ergodox_blink_all_leds(void);
17
3void matrix_init_kb(void) { 18void matrix_init_kb(void) {
19 ergodox_led_init();
20 ergodox_blink_all_leds();
4 matrix_init_user(); 21 matrix_init_user();
5} 22}
23
24void 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
34void 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
11void init_ergodox(void); 11void init_ergodox(void);
12 12
13inline void ergodox_right_led_1_off(void) {} 13inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<PB5); PORTB &= ~(1<<PB5); }
14inline void ergodox_right_led_1_on(void) {} 14inline void ergodox_right_led_1_on(void) { DDRB |= (1<<PB5); PORTB |= (1<<PB5); }
15inline void ergodox_right_led_2_off(void) {} 15inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<PB6); PORTB &= ~(1<<PB6); }
16inline void ergodox_right_led_2_on(void) {} 16inline void ergodox_right_led_2_on(void) { DDRB |= (1<<PB6); PORTB |= (1<<PB6); }
17inline void ergodox_right_led_3_off(void) {} 17inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<PB3); PORTB &= ~(1<<PB3); }
18inline void ergodox_right_led_3_on(void) {} 18inline void ergodox_right_led_3_on(void) { DDRB |= (1<<PB3); PORTB |= (1<<PB3); }
19inline void ergodox_right_led_on(uint8_t l) {} 19inline void ergodox_right_led_on(uint8_t l) {
20inline void ergodox_right_led_off(uint8_t l) {} 20 switch (l) {
21inline void ergodox_board_led_off(void) {} 21 case 1:
22inline void ergodox_board_led_on(void) {} 22 ergodox_right_led_1_on();
23inline void ergodox_led_all_on(void) {} 23 break;
24inline 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
35inline 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}
50inline void ergodox_board_led_off(void) { DDRB &= ~(1<<PB0); PORTB |= (1<<PB0); }
51inline void ergodox_board_led_on(void) { DDRB |= (1<<PB0); PORTB &= ~(1<<PB0); }
52inline 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}
58inline 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}
25inline void ergodox_right_led_1_set(uint8_t n) {} 64inline void ergodox_right_led_1_set(uint8_t n) {}
26inline void ergodox_right_led_2_set(uint8_t n) {} 65inline void ergodox_right_led_2_set(uint8_t n) {}
27inline void ergodox_right_led_3_set(uint8_t n) {} 66inline void ergodox_right_led_3_set(uint8_t n) {}