aboutsummaryrefslogtreecommitdiff
path: root/keyboards/phoenix/phoenix.c
diff options
context:
space:
mode:
authorLSChyi <alan81920@gmail.com>2020-09-14 18:33:43 +0800
committerGitHub <noreply@github.com>2020-09-14 03:33:43 -0700
commit02551ae4991d818adb824fe39a82437281ee5306 (patch)
tree334a8c57c8913d9b55a1bd10ce2f451ff150ad60 /keyboards/phoenix/phoenix.c
parent6499eb6a3c512ded96443649d66274ce1064df0f (diff)
downloadqmk_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.c85
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
5void 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
36void 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
47void 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
65void 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
77layer_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}