Skip to content

Commit 6ba383c

Browse files
authored
[Docs] Japanese translation of docs/custom_matrix.md (qmk#8463)
* add docs/ja/custom_matrix.md * add original document TAG * update ja/custom_matrix.md * 「マトリクス」to 「マトリックス」 * docs/ja/custom_matrix.md:update section title * update docs/ja/custom_matrix.md * update docs/ja/custom_matrix.md
1 parent d44ca60 commit 6ba383c

File tree

2 files changed

+116
-2
lines changed

2 files changed

+116
-2
lines changed

docs/ja/_summary.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,15 @@
7878
* [キーロック](ja/feature_key_lock.md)
7979
* [レイアウト](ja/feature_layouts.md)
8080
* [リーダー キー](ja/feature_leader_key.md)
81-
* [LED マトリクス](ja/feature_led_matrix.md)
81+
* [LED マトリックス](ja/feature_led_matrix.md)
8282
* [マクロ](ja/feature_macros.md)
8383
* [マウスキー](ja/feature_mouse_keys.md)
8484
* [OLED ドライバ](ja/feature_oled_driver.md)
8585
* [One Shot Keys](ja/one_shot_keys.md)
8686
* [ポインティング デバイス](ja/feature_pointing_device.md)
8787
* [PS/2 マウス](ja/feature_ps2_mouse.md)
8888
* [RGB ライト](ja/feature_rgblight.md)
89-
* [RGB マトリクス](ja/feature_rgb_matrix.md)
89+
* [RGB マトリックス](ja/feature_rgb_matrix.md)
9090
* [Space Cadet](ja/feature_space_cadet.md)
9191
* [分割キーボード](ja/feature_split_keyboard.md)
9292
* [Stenography](ja/feature_stenography.md)

docs/ja/custom_matrix.md

+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# カスタムマトリックス
2+
3+
<!---
4+
grep --no-filename "^[ ]*git diff" docs/ja/*.md | sh
5+
original document: 0.8.46:docs/custom_matrix.md
6+
git diff 0.8.46 HEAD -- docs/custom_matrix.md | cat
7+
-->
8+
9+
QMKは、デフォルトのマトリックススキャンルーチンを独自のコードで部分的に入れ替えたり全部入れ替えたりしたりするメカニズムを提供します。
10+
11+
この機能を使用する理由は次のとおりです:
12+
13+
* キーボードのスイッチと MCU ピンの間に追加のハードウェアがある場合
14+
* I/O マルチプレクサ
15+
* ラインデコーダー
16+
* 一般的ではないキースイッチマトリックス
17+
* `COL2ROW``ROW2COL` の同時使用
18+
19+
## 前提条件
20+
21+
カスタムマトリックスの実装には、通常、追加のソースファイルのコンパイルが含まれます。
22+
一貫性を保つために、このソースファイルのファイル名は `matrix.c` とすることをお勧めします。
23+
24+
あなたのキーボードディレクトリに新しいファイルを追加します:
25+
```text
26+
keyboards/<keyboard>/matrix.c
27+
```
28+
29+
そして、新しいファイルのコンパイルを指定するため、以下を `rules.mk` に追加します
30+
```make
31+
SRC += matrix.c
32+
```
33+
34+
## マトリックスコードの部分置き換え
35+
36+
カスタムマトリックスを実装する際、定型コードを書かなくてすむように、さまざまなスキャン関数のデフォルト実装を提供しています。
37+
38+
設定するには、以下を `rules.mk` に追加します:
39+
```make
40+
CUSTOM_MATRIX = lite
41+
```
42+
43+
そして、キーボードディレクトリの `matrix.c` ファイルに次の関数を実装します。
44+
45+
```c
46+
void matrix_init_custom(void) {
47+
// TODO: ここでハードウェアの初期化をする
48+
}
49+
50+
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
51+
bool matrix_has_changed = false;
52+
53+
// TODO: ここで、マトリックススキャンを行なう
54+
55+
return matrix_has_changed;
56+
}
57+
```
58+
59+
## マトリックスコードの全面置き換え
60+
61+
スキャンルーチンをさらに変更する必要がある場合は、完全なスキャンルーチンを実装することを選択できます。
62+
63+
設定するには、以下を `rules.mk` に追加します:
64+
```make
65+
CUSTOM_MATRIX = yes
66+
```
67+
68+
そして、キーボードディレクトリの `matrix.c` ファイルに次の関数を実装します。
69+
70+
```c
71+
matrix_row_t matrix_get_row(uint8_t row) {
72+
// TODO: 要求された行データを返します
73+
}
74+
75+
void matrix_print(void) {
76+
// TODO: printf() を使って現在のマトリックスの状態をコンソールにダンプします
77+
}
78+
79+
void matrix_init(void) {
80+
// TODO: ここでハードウェアとグローバルマトリックスの状態を初期化します
81+
82+
// ハードウェアによるデバウンスがない場合 - 設定されているデバウンスルーチンを初期化します
83+
debounce_init(MATRIX_ROWS);
84+
85+
// 正しいキーボード動作のためにこれを呼び出す*必要があります*
86+
matrix_init_quantum();
87+
}
88+
89+
uint8_t matrix_scan(void) {
90+
bool matrix_has_changed = false;
91+
92+
// TODO: ここにマトリックススキャンルーチンを追加します
93+
94+
// ハードウェアによるデバウンスがない場合 - 設定されているデバウンスルーチンを使用します
95+
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
96+
97+
// 正しいキーボード動作のためにこれを呼び出す*必要があります*
98+
matrix_scan_quantum();
99+
100+
return matrix_has_changed;
101+
}
102+
```
103+
104+
また、次のコールバックのデフォルトも提供します。
105+
106+
```c
107+
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
108+
109+
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
110+
111+
__attribute__((weak)) void matrix_init_user(void) {}
112+
113+
__attribute__((weak)) void matrix_scan_user(void) {}
114+
```

0 commit comments

Comments
 (0)