diff options
author | LSChyi <alan81920@gmail.com> | 2020-09-14 18:33:43 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-14 03:33:43 -0700 |
commit | 02551ae4991d818adb824fe39a82437281ee5306 (patch) | |
tree | 334a8c57c8913d9b55a1bd10ce2f451ff150ad60 /keyboards/phoenix/phoenix.c | |
parent | 6499eb6a3c512ded96443649d66274ce1064df0f (diff) | |
download | qmk_firmware-02551ae4991d818adb824fe39a82437281ee5306.tar.gz qmk_firmware-02551ae4991d818adb824fe39a82437281ee5306.zip |
[Keyboard] add Phoenix keyboard (#10256)
* setup keyboard
* fit v1 board setting
* remove unused def and add ergodox_pretty
* add user hooks
* add ergodox_pretty to info
* apply suggestions
* use default split usb timeout
Diffstat (limited to 'keyboards/phoenix/phoenix.c')
-rw-r--r-- | keyboards/phoenix/phoenix.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/keyboards/phoenix/phoenix.c b/keyboards/phoenix/phoenix.c new file mode 100644 index 000000000..e79b35b15 --- /dev/null +++ b/keyboards/phoenix/phoenix.c | |||
@@ -0,0 +1,85 @@ | |||
1 | #include "hal.h" | ||
2 | #include "usb_main.h" | ||
3 | #include "phoenix.h" | ||
4 | |||
5 | void bootmagic_lite(void) { | ||
6 | matrix_scan(); | ||
7 | wait_ms(5); | ||
8 | matrix_scan(); | ||
9 | |||
10 | if ((matrix_get_row(0) & 1) || (matrix_get_row(6) & 1)) { | ||
11 | palSetPadMode(GPIOB, 8, PAL_MODE_OUTPUT_PUSHPULL); | ||
12 | palSetPadMode(GPIOB, 5, PAL_MODE_OUTPUT_PUSHPULL); | ||
13 | palSetPadMode(GPIOB, 6, PAL_MODE_OUTPUT_PUSHPULL); | ||
14 | led1_off(); | ||
15 | led2_off(); | ||
16 | led3_off(); | ||
17 | |||
18 | led3_on(); | ||
19 | wait_ms(50); | ||
20 | led2_on(); | ||
21 | wait_ms(50); | ||
22 | led1_on(); | ||
23 | wait_ms(50); | ||
24 | |||
25 | led3_off(); | ||
26 | wait_ms(50); | ||
27 | led2_off(); | ||
28 | wait_ms(50); | ||
29 | led1_off(); | ||
30 | wait_ms(50); | ||
31 | |||
32 | bootloader_jump(); | ||
33 | } | ||
34 | } | ||
35 | |||
36 | void keyboard_pre_init_kb(void) { | ||
37 | palSetPadMode(GPIOB, 8, PAL_MODE_OUTPUT_PUSHPULL); | ||
38 | palSetPadMode(GPIOB, 5, PAL_MODE_OUTPUT_PUSHPULL); | ||
39 | palSetPadMode(GPIOB, 6, PAL_MODE_OUTPUT_PUSHPULL); | ||
40 | led1_off(); | ||
41 | led2_off(); | ||
42 | led3_off(); | ||
43 | |||
44 | keyboard_pre_init_user(); | ||
45 | } | ||
46 | |||
47 | void keyboard_post_init_kb(void) { | ||
48 | led1_on(); | ||
49 | wait_ms(50); | ||
50 | led2_on(); | ||
51 | wait_ms(50); | ||
52 | led3_on(); | ||
53 | wait_ms(50); | ||
54 | |||
55 | led1_off(); | ||
56 | wait_ms(50); | ||
57 | led2_off(); | ||
58 | wait_ms(50); | ||
59 | led3_off(); | ||
60 | wait_ms(50); | ||
61 | |||
62 | keyboard_post_init_user(); | ||
63 | } | ||
64 | |||
65 | void manipulate_led(uint32_t led, bool on) { | ||
66 | switch (led) { | ||
67 | case 1: | ||
68 | on ? led1_on() : led1_off(); | ||
69 | case 2: | ||
70 | on ? led2_on() : led2_off(); | ||
71 | case 3: | ||
72 | on ? led3_on() : led3_off(); | ||
73 | } | ||
74 | } | ||
75 | |||
76 | |||
77 | layer_state_t layer_state_set_kb(uint32_t state) { | ||
78 | state = layer_state_set_user(state); | ||
79 | |||
80 | uint8_t layer = get_highest_layer(state); | ||
81 | manipulate_led(1, layer & 1); | ||
82 | manipulate_led(2, layer >> 1 & 1); | ||
83 | manipulate_led(3, layer >> 2 & 1); | ||
84 | return state; | ||
85 | } | ||