aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/ja/feature_encoders.md81
1 files changed, 81 insertions, 0 deletions
diff --git a/docs/ja/feature_encoders.md b/docs/ja/feature_encoders.md
new file mode 100644
index 000000000..0e35e7dc8
--- /dev/null
+++ b/docs/ja/feature_encoders.md
@@ -0,0 +1,81 @@
1# エンコーダ
2
3<!---
4 original document: 0.8.123:docs/feature_encoders.md
5 git diff 0.8.123 HEAD -- docs/feature_encoders.md | cat
6-->
7
8以下を `rules.mk` に追加することで基本的なエンコーダがサポートされます:
9
10```make
11ENCODER_ENABLE = yes
12```
13
14さらに、以下を `config.h` に追加します:
15
16```c
17#define ENCODERS_PAD_A { B12 }
18#define ENCODERS_PAD_B { B13 }
19```
20
21各 PAD_A/B 変数は配列を定義するため、複数のエンコーダを定義することができます。例えば:
22
23```c
24#define ENCODERS_PAD_A { encoder1a, encoder2a }
25#define ENCODERS_PAD_B { encoder1b, encoder2b }
26```
27
28エンコーダの時計回りの方向が間違っている場合は、A と B のパッド定義を交換することができます。define を使って逆にすることもできます:
29
30```c
31#define ENCODER_DIRECTION_FLIP
32```
33
34さらに、解像度を同じファイルで指定することができます (デフォルトかつお勧めは4):
35
36```c
37#define ENCODER_RESOLUTION 4
38```
39
40## 分割キーボード
41
42分割キーボードのそれぞれの側のエンコーダに異なるピン配列を使っている場合、右側のピン配列を以下のように定義することができます:
43
44```c
45#define ENCODERS_PAD_A_RIGHT { encoder1a, encoder2a }
46#define ENCODERS_PAD_B_RIGHT { encoder1b, encoder2b }
47```
48
49## コールバック
50
51コールバック関数を `<keyboard>.c` に記述することができます:
52
53```c
54void encoder_update_kb(uint8_t index, bool clockwise) {
55 encoder_update_user(index, clockwise);
56}
57```
58
59あるいは `keymap.c` に記述することもできます:
60
61```c
62void encoder_update_user(uint8_t index, bool clockwise) {
63 if (index == 0) { /* First encoder */
64 if (clockwise) {
65 tap_code(KC_PGDN);
66 } else {
67 tap_code(KC_PGUP);
68 }
69 } else if (index == 1) { /* Second encoder */
70 if (clockwise) {
71 tap_code(KC_DOWN);
72 } else {
73 tap_code(KC_UP);
74 }
75 }
76}
77```
78
79## ハードウェア
80
81エンコーダの A と B の線は MCU に直接配線し、C/common 線はグランドに配線する必要があります。