aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorshela <shelaf@users.noreply.github.com>2021-01-30 06:05:40 +0900
committerGitHub <noreply@github.com>2021-01-30 06:05:40 +0900
commit5691f1341dcb48d7d043bfd6f8663b414aaf427d (patch)
tree640629a0a004b7de0a1a7c37efc3aef0d720840b /docs
parentbad9592a18494e3f678c2a117a526ca5f2f2280d (diff)
downloadqmk_firmware-5691f1341dcb48d7d043bfd6f8663b414aaf427d.tar.gz
qmk_firmware-5691f1341dcb48d7d043bfd6f8663b414aaf427d.zip
Update feature_debounce_type.md of Japanese document. (#10596)
* Update Japanese document. * fix table format. * fix heading * Update translation * Apply suggestions from code review Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * Update docs/ja/feature_debounce_type.md Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com> * Bump up comment tag Co-authored-by: Takeshi ISHII <2170248+mtei@users.noreply.github.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/ja/feature_debounce_type.md150
1 files changed, 125 insertions, 25 deletions
diff --git a/docs/ja/feature_debounce_type.md b/docs/ja/feature_debounce_type.md
index a375ebb45..03f68d721 100644
--- a/docs/ja/feature_debounce_type.md
+++ b/docs/ja/feature_debounce_type.md
@@ -1,45 +1,145 @@
1# デãƒã‚¦ãƒ³ã‚¹ã¢ãƒ«ã‚´ãƒªã‚ºãƒ  1# 接点ãƒã‚¦ãƒ³ã‚¹ / 接ç¹ãƒãƒ£ã¿ãƒªãƒ³ã‚°
2 2
3<!--- 3<!---
4 original document: 0.9.19:docs/feature_debounce_type.md 4 original document: 0.11.53:docs/feature_debounce_type.md
5 git diff 0.9.19 HEAD -- docs/feature_debounce_type.md | cat 5 git diff 0.11.53 HEAD -- docs/feature_debounce_type.md | cat
6--> 6-->
7 7
8QMK ã¯ãƒ‡ãƒã‚¦ãƒ³ã‚¹ API を介ã—ã¦è¤‡æ•°ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’サãƒãƒ¼ãƒˆã—ã¾ã™ã€‚ 8メカニカルスイッãƒã¯æŠ¼ã—ãŸçŠ¶æ…‹ã¨æ”¾ã—ãŸçŠ¶æ…‹ã®é–“ã®ç§»è¡ŒãŒå˜ç´”ã§ã¯ãªã„ã“ã¨ãŒè‰¯ãã‚りã¾ã™ã€‚
9
10ç†æƒ³çš„ãªä¸–界ã§ã¯ã€ã‚¹ã‚¤ãƒƒãƒã‚’押ã™ã¨ã€ãƒ‡ã‚¸ã‚¿ãƒ«ãƒ”ãƒ³ãŒæ¬¡ã®ã‚ˆã†ã«ãªã‚‹ã“ã¨ãŒæœŸå¾…ã•れã¾ã™:
11(X è»¸ã¯æ™‚間を表ã—ã¾ã™
12```
13voltage +----------------------
14 ^ |
15 | |
16 | ------------------+
17 ----> time
18```
19
20ã—ã‹ã—実際ã®ä¸–界ã§ã¯ã€å€¤ãŒæœ€çµ‚çš„ã«è½ã¡ç€ãã¾ã§ã« 0 㨠1 ã®é–“を行ã£ãŸã‚Šæ¥ãŸã‚Šã™ã‚‹æŽ¥ç‚¹ãƒã‚¦ãƒ³ã‚¹ã‚’見るã“ã¨ã«ãªã‚‹ã§ã—ょã†ã€‚(訳注:日本語ã§ã¯ã€ãƒã‚¦ãƒ³ã‚¹ã¨ãƒãƒ£ã‚¿ãƒªãƒ³ã‚°ã‚’区別ã›ãšã«ãƒãƒ£ã‚¿ãƒªãƒ³ã‚°ã¨å‘¼ã‚“ã§ã„ã‚‹ã“ã¨ãŒå¤šã„よã†ã§ã™ã€‚)
21```
22 +-+ +--+ +-------------
23 | | | | |
24 | | | | |
25+-----------------+ +-+ +-+
26```
27スイッãƒãŒè½ã¡ç€ãã¾ã§ã«ã‹ã‹ã‚‹æ™‚é–“ã¯ã€ã‚¹ã‚¤ãƒƒãƒã®ç¨®é¡žã‚„çµŒå¹´ã€æŠ¼ã™æŠ€è¡“ã«ã‚ˆã£ã¦ç•°ãªã‚‹å ´åˆãŒã‚りã¾ã™ã€‚
9 28
10ã©ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ãŒå‘¼ã°ã‚Œã‚‹ã‹ã®ãƒ­ã‚¸ãƒƒã‚¯ã¯ä¸‹è¨˜ã®ã¨ãŠã‚Šã§ã™ã€‚rules.mk ã§è¨­å®šã•ã‚ŒãŸæ§˜ã€…ãªå®šç¾©ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã€‚ 29デãƒã‚¤ã‚¹ãŒæŽ¥ç‚¹ãƒã‚¦ãƒ³ã‚¹ã‚’ç·©å’Œã—ãªã„ã“ã¨ã‚’é¸æŠžã—ãŸå ´åˆã€ã‚¹ã‚¤ãƒƒãƒãŒæŠ¼ã•ã‚ŒãŸæ™‚ã«èµ·ãるアクションãŒè¤‡æ•°å›žç¹°ã‚Šè¿”ã•れるã“ã¨ãŒã‚ˆãã‚りã¾ã™ã€‚
30
31接点ãƒã‚¦ãƒ³ã‚¹(「デãƒã‚¦ãƒ³ã‚¹ã€)を処ç†ã™ã‚‹æ–¹æ³•ã¯ãŸãã•ã‚“ã‚りã¾ã™ã€‚RC フィルタã®ã‚ˆã†ãªè¿½åŠ ã®ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ã‚’採用ã™ã‚‹æ–¹æ³•ã‚‚ã‚りã¾ã™ãŒã€ã‚½ãƒ•トウェアã§ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚’è¡Œã†æ§˜ã€…ãªæ–¹æ³•ã‚‚ã‚りã€ã‚ˆãデãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¨å‘¼ã°ã‚Œã¾ã™ã€‚ã“ã®ãƒšãƒ¼ã‚¸ã§ã¯ã€QMK ã§åˆ©ç”¨ã§ãるデãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã«ã¤ã„ã¦èª¬æ˜Žã—ã¾ã™ã€‚
32
33技術的ã«ã¯æŽ¥ç‚¹ãƒã‚¦ãƒ³ã‚¹/接点ãƒãƒ£ã‚¿ãƒªãƒ³ã‚°ã¨ã¯è¦‹ãªã•れã¾ã›ã‚“ãŒã€ä¸€éƒ¨ã®ã‚¹ã‚¤ãƒƒãƒãƒ†ã‚¯ãƒŽãƒ­ã‚¸ãƒ¼ã¯ãƒŽã‚¤ã‚ºã®å½±éŸ¿ã‚’å—ã‘ã‚„ã™ãã€ã‚­ãƒ¼ã®çŠ¶æ…‹ãŒå¤‰åŒ–ã—ã¦ã„ãªã„時ã«ã€æ™‚々短ãランダム㫠0 㨠1 ã®é–“ã‚’è¡Œãæ¥ã™ã‚‹æ§˜å­ãŒãƒ‡ã‚¸ã‚¿ãƒ«å›žè·¯ã«ã‚ˆã£ã¦èª­ã¿å–られる場åˆãŒã‚りã¾ã™ã€‚例ãˆã°:
34```
35 +-+
36 | |
37 | |
38+-----------------+ +--------------------
39```
40
41多ãã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰(å…¨ã¦ã§ã¯ãªã„ã§ã™ãŒ)ã¯ã€ãƒ‡ãƒã‚¤ã‚¹ã«ãƒŽã‚¤ã‚ºè€æ€§ã‚’æŒãŸã›ã¾ã™ã€‚
42ノイズã®å½±éŸ¿ã‚’å—ã‘ã‚„ã™ã„技術を使ã£ã¦ã„ã‚‹å ´åˆã¯ã€ãƒŽã‚¤ã‚ºã‚’ç·©å’Œã™ã‚‹ãƒ‡ãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’é¸æŠžã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
43
44## デãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã®ç¨®é¡ž
45
461) 時間ã®å˜ä½: タイムスタンプ (ミリ秒) vs 周期 (スキャン)
47 * デãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¯1ã¤ã®ã€Œãƒ‡ãƒã‚¦ãƒ³ã‚¹æ™‚é–“ã€ãƒ‘ラメータをæŒã¤ã“ã¨ãŒã‚ˆãã‚りã€ã‚¹ã‚¤ãƒƒãƒæŽ¥ç‚¹ã®æœ€å¤§ã‚»ãƒˆãƒªãƒ³ã‚°æ™‚間を指定ã—ã¾ã™ã€‚
48 ã“ã®æ™‚é–“ã¯æ§˜ã€…ãªå˜ä½ã§æ¸¬å®šã•れる場åˆãŒã‚りã¾ã™:
49 * 周期ベースデãƒã‚¦ãƒ³ã‚¹ã¯ n 周期(スキャン)待機ã—ã€matrix_scan ã”ã¨ã«ã‚«ã‚¦ãƒ³ãƒˆã‚’1減らã—ã¾ã™ã€‚
50 * タイムスタンプベースã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã¯ã€å¤‰æ›´ãŒç™ºç”Ÿã—ãŸãƒŸãƒªç§’ã®ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã‚’æ ¼ç´ã—ã€çµŒéŽæ™‚間を計算ã™ã‚‹ãŸã‚ã«æ¸›ç®—を行ã„ã¾ã™ã€‚
51 * 通常ã€ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ベースã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã¯ã€ç‰¹ã«ãƒŽã‚¤ã‚ºè€æ€§ã®ã‚るデãƒã‚¤ã‚¹ã§å„ªã‚Œã¦ã„ã¾ã™ã€‚ãªãœãªã‚‰ã€ç‰©ç†ã‚¹ã‚¤ãƒƒãƒã®ã‚»ãƒˆãƒªãƒ³ã‚°æ™‚é–“ã¯æ™‚é–“ã®å˜ä½ã§æŒ‡å®šã•れã¦ãŠã‚Šã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ãƒžãƒˆãƒªãƒƒã‚¯ã‚¹ã‚¹ã‚­ãƒ£ãƒ³ãƒ¬ãƒ¼ãƒˆã«ä¾å­˜ã—ãªã„ã‹ã‚‰ã§ã™ã€‚
52 * 周期ベースã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã¯ã€è£œæ­£ã§ãるセトリング時間ãŒãƒžãƒˆãƒªãƒƒã‚¯ã‚¹ã‚¹ã‚­ãƒ£ãƒ³ã‚³ãƒ¼ãƒ‰ã®ãƒ‘フォーマンスã«ä¾å­˜ã™ã‚‹ãŸã‚ã€åŠ£ã‚‹ã¨è¦‹ãªã•れる場åˆãŒã‚りã¾ã™ã€‚
53 周期ベースã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚’使ã†å ´åˆã€ã‚¹ã‚­ãƒ£ãƒ³ã‚³ãƒ¼ãƒ‰ã®ãƒ‘フォーマンスを大幅ã«å‘上ã•ã›ã‚‹ã¨ã€ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã®åŠ¹æžœãŒä½Žä¸‹ã™ã‚‹å ´åˆãŒã‚りã¾ã™ã€‚
54 周期ベースã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ãŒæœ›ã¾ã—ã„状æ³ã¯ã€ãƒŽã‚¤ã‚ºãŒå­˜åœ¨ã—ã€ã‚¹ã‚­ãƒ£ãƒ³ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ãŒé…ã„ã€ã‚‚ã—ãã¯é€Ÿåº¦ãŒå¯å¤‰ã§ã‚ã‚‹å ´åˆã§ã™ã€‚
55 デãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ãŒåŸºæœ¬çš„ã«ãƒŽã‚¤ã‚ºè€æ€§ãŒã‚ã‚‹å ´åˆã§ã‚‚ã€ã‚¹ã‚­ãƒ£ãƒ³ãŒé…ãã€ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ベースã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’使ã£ã¦ã„ã‚‹å ´åˆã¯ã€
56 2ã¤ã®ã‚µãƒ³ãƒ—ル値ã«åŸºã¥ã„ã¦ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚’決定ã™ã‚‹ãŸã‚ã€ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã®ãƒŽã‚¤ã‚ºè€æ€§ã¯åˆ¶é™ã•れã¾ã™ã€‚
57 * ç¾åœ¨ã€å…¨ã¦ã®çµ„ã¿è¾¼ã¿ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¯ã€ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ベースã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã®ã¿ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚å°†æ¥çš„ã«ã¯å‘¨æœŸãƒ™ãƒ¼ã‚¹ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚’実装ã—ã€```config.h``` マクロを介ã—ã¦é¸æŠžã§ãるよã†ã«ãªã‚‹ã§ã—ょã†ã€‚
58
592) 対称 vs éžå¯¾ç§°
60 * 対称 - キーアップã¨ã‚­ãƒ¼ãƒ€ã‚¦ãƒ³ã‚¤ãƒ™ãƒ³ãƒˆã®ä¸¡æ–¹ã«ã€åŒã˜ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’é©ç”¨ã—ã¾ã™ã€‚
61 * 推奨ã•れる命åè¦å‰‡: ```sym_*```
62 * éžå¯¾ç§° - キーダウンã¨ã‚­ãƒ¼ã‚¢ãƒƒãƒ—イベントã«ç•°ãªã‚‹ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’é©ç”¨ã—ã¾ã™ã€‚例ãˆã°ã€ã‚­ãƒ¼ãƒ€ã‚¦ãƒ³ã¯ã‚¤ãƒ¼ã‚¬ãƒ¼ã€ã‚­ãƒ¼ã‚¢ãƒƒãƒ—ã¯ãƒ‡ãƒ•ァー。
63 * 推奨ã•れる命åè¦å‰‡: ```asym_*``` ã®å¾Œã«ã€ã‚­ãƒ¼ãƒ€ã‚¦ãƒ³ã€ã‚­ãƒ¼ã‚¢ãƒƒãƒ—ã®é †ã«ä½¿ã£ã¦ã„るアルゴリズムタイプã®è©³ç´°ãŒç¶šãã¾ã™ã€‚
64
653) イーガー vs デファー
66 * イーガー - キーã®å¤‰æ›´ã¯ã™ãã«å ±å‘Šã•れã¾ã™ã€‚DEBOUNCE ミリ秒以é™ã®å…¨ã¦ã®å…¥åŠ›ã¯ç„¡è¦–ã•れã¾ã™ã€‚
67 * イーガーアルゴリズムã¯ãƒŽã‚¤ã‚ºè€æ€§ã¯ã‚りã¾ã›ã‚“
68 * 推奨ã•れる命åè¦å‰‡:
69 * ```sym_eager_*```
70 * ```asym_eager_*_*```: キーダウンã¯ã‚¤ãƒ¼ã‚¬ãƒ¼ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’使ã„ã¾ã™
71 * ```asym_*_eager_*```: キーアップã¯ã‚¤ãƒ¼ã‚¬ãƒ¼ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’使ã„ã¾ã™
72 * デファー - 変更を報告ã™ã‚‹å‰ã« DEBOUNCE ミリ秒ã®é–“変更ãŒãªã„ã“ã¨ã‚’待機ã—ã¾ã™
73 * デファーアルゴリズムã¯ãƒŽã‚¤ã‚ºè€æ€§ãŒã‚りã¾ã™
74 * 推奨ã•れる命åè¦å‰‡:
75 * ```sym_defer_*```
76 * ```asym_defer_*_*```: キーダウンã¯ãƒ‡ãƒ•ァーアルゴリズムを使ã„ã¾ã™
77 * ```asym_*_defer_*```: キーアップã¯ãƒ‡ãƒ•ァーアルゴリズムを使ã„ã¾ã™
78
794) グローãƒãƒ« vs キーã”㨠vs 行ã”ã¨
80 * グローãƒãƒ« - å…¨ã¦ã®ã‚­ãƒ¼ã«å¯¾ã—ã¦1ã¤ã®ã‚¿ã‚¤ãƒžãƒ¼ã€‚キーã®å¤‰æ›´çŠ¶æ…‹ã¯ã€ã‚°ãƒ­ãƒ¼ãƒãƒ«ã‚¿ã‚¤ãƒžãƒ¼ã«å½±éŸ¿ã‚’与ãˆã¾ã™ã€‚
81 * 推奨ã•れる命åè¦å‰‡: ```*_g```
82 * キーã”㨠- キーã”ã¨ã«1ã¤ã®ã‚¿ã‚¤ãƒžãƒ¼ã€‚
83 * 推奨ã•れる命åè¦å‰‡: ```*_pk```
84 * 行ã”㨠- 行ã”ã¨ã«1ã¤ã®ã‚¿ã‚¤ãƒžãƒ¼ã€‚
85 * 推奨ã•れる命åè¦å‰‡: ```*_pr```
86 * キーã”ã¨ã‚„行ã”ã¨ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¯ã‚ˆã‚Šå¤šãã®ãƒªã‚½ãƒ¼ã‚¹(パフォーマンス㨠RAM 使用é‡ã®è¦³ç‚¹ã§)を消費ã—ã¾ã™ãŒã€é«˜é€Ÿãªã‚¿ã‚¤ãƒ”ストã¯ã‚°ãƒ­ãƒ¼ãƒãƒ«ã‚ˆã‚Šã‚‚ãれらを好む場åˆãŒã‚りã¾ã™ã€‚
87
88## QMK ã§ã‚µãƒãƒ¼ãƒˆã•れるデãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ 
89
90QMK ã¯ãƒ‡ãƒã‚¦ãƒ³ã‚¹ API を介ã—ã¦è¤‡æ•°ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’サãƒãƒ¼ãƒˆã—ã¾ã™ã€‚
91ã©ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ãŒå‘¼ã°ã‚Œã‚‹ã‹ã®ãƒ­ã‚¸ãƒƒã‚¯ã¯ä¸‹è¨˜ã®ã¨ãŠã‚Šã§ã™ã€‚```rules.mk``` ã§è¨­å®šã•ã‚ŒãŸæ§˜ã€…ãªå®šç¾©ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã€‚
11 92
12``` 93```
13DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce 94DEBOUNCE_DIR:= $(QUANTUM_DIR)/debounce
14DEBOUNCE_TYPE?= sym_g 95DEBOUNCE_TYPE?= sym_defer_g
15ifneq ($(strip $(DEBOUNCE_TYPE)), custom) 96ifneq ($(strip $(DEBOUNCE_TYPE)), custom)
16 QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c 97 QUANTUM_SRC += $(DEBOUNCE_DIR)/$(strip $(DEBOUNCE_TYPE)).c
17endif 98endif
18``` 99```
19 100
20# デãƒã‚¦ãƒ³ã‚¹ã®é¸æŠž 101### デãƒã‚¦ãƒ³ã‚¹ã®é¸æŠž
21 102
22| DEBOUNCE_TYPE | 説明 | ä»–ã«å¿…è¦ãªã‚‚ã® | 103| DEBOUNCE_TYPE | 説明 | ä»–ã«å¿…è¦ãªã‚‚ã® |
23| ------------- | --------------------------------------------------- | ----------------------------- | 104| ------------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------- |
24| 未定義 | デフォルトã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã€ç¾åœ¨ã®ã¨ã“ã‚ sym_g を使ã„ã¾ã™ | ç„¡ã— | 105| 未定義 | デフォルトã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã€ç¾åœ¨ã®ã¨ã“ã‚ sym_defer_g を使ã„ã¾ã™ | ç„¡ã— |
25| custom | 独自ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’使ã„ã¾ã™ | ```SRC += debounce.c``` ã§ç‹¬è‡ªã® debounce.c を追加ã—ã€å¿…è¦ãªé–¢æ•°ã‚’実装ã—ã¾ã™ | 106| custom | 独自ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’使ã„ã¾ã™ | ```SRC += debounce.c``` ã§ç‹¬è‡ªã® debounce.c を追加ã—ã€å¿…è¦ãªé–¢æ•°ã‚’実装ã—ã¾ã™ |
26| anything_else | quantum/debounce/* ã‹ã‚‰ä»–ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’使ã„ã¾ã™ | ç„¡ã— | 107| ãã®ä»– | quantum/debounce/* ã‹ã‚‰ä»–ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’使ã„ã¾ã™ | ç„¡ã— |
27 108
28**分割キーボードã«ã¤ã„ã¦**: 109**分割キーボードã«ã¤ã„ã¦**:
29デãƒã‚¦ãƒ³ã‚¹ã‚³ãƒ¼ãƒ‰ã¯åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¨äº’æ›æ€§ãŒã‚りã¾ã™ã€‚ 110デãƒã‚¦ãƒ³ã‚¹ã‚³ãƒ¼ãƒ‰ã¯åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¨äº’æ›æ€§ãŒã‚りã¾ã™ã€‚
30 111
31# 独自ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚³ãƒ¼ãƒ‰ã®ä½¿ç”¨ 112### インクルードã•れã¦ã„るデãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã®é¸æŠž
32* ```DEBOUNCE_TYPE = custom``` を設定ã—ã¾ã™ã€‚ 113キーボードã¯ã€```rules.mk``` ã«æ¬¡ã®è¡Œã‚’追加ã™ã‚‹ã“ã¨ã§ã€æ—¢ã«å®Ÿè£…ã•れã¦ã„るデãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã®1ã¤ã‚’é¸æŠžã§ãã¾ã™:
33* ```SRC += debounce.c``` を追加ã—ã¾ã™ã€‚ 114```
34* 独自㮠```debounce.c``` を追加ã—ã¾ã™ã€‚例ã«ã¤ã„ã¦ã¯ã€```quantum/debounce``` ã«ã‚ã‚‹ç¾åœ¨ã®å®Ÿè£…ã‚’ã¿ã¦ãã ã•ã„。 115DEBOUNCE_TYPE = <アルゴリズムã®åå‰>
35* 毎回ã®ãƒžãƒˆãƒªã‚¯ã‚¹ã‚¹ã‚­ãƒ£ãƒ³ã®çµæžœã¯ãã®åº¦ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã«ã‚ˆã£ã¦å‡¦ç†ã•れã¾ã™ã€‚ 116```
117アルゴリズムã®åå‰ã¯æ¬¡ã®ã„ãšã‚Œã‹ã§ã™:
118* ```sym_defer_g``` - キーボードã”ã¨ã«ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã—ã¾ã™ã€‚状態ãŒå¤‰åŒ–ã™ã‚‹ã¨ã€ã‚°ãƒ­ãƒ¼ãƒãƒ«ã‚¿ã‚¤ãƒžãŒè¨­å®šã•れã¾ã™ã€‚```DEBOUNCE``` ミリ秒ã®é–“何も変化ãŒãªã‘れã°ã€å…¨ã¦ã®å…¥åŠ›ã®å¤‰æ›´ãŒãƒ—ッシュã•れã¾ã™ã€‚
119 * ã“れã¯ç¾åœ¨ã®ãƒ‡ãƒ•ォルトアルゴリズムã§ã™ã€‚ã“れã¯ãƒ¡ãƒ¢ãƒªä½¿ç”¨é‡ãŒæœ€ã‚‚å°‘ãªã„最高ã®ãƒ‘フォーマンスã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã§ã€ãƒŽã‚¤ã‚ºè€æ€§ã‚‚ã‚りã¾ã™ã€‚
120* ```sym_eager_pr``` - 行ã”ã¨ã«ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã—ã¾ã™ã€‚状態ãŒå¤‰åŒ–ã™ã‚‹ã¨ã€å¿œç­”ã¯å³åº§ã«è¡Œã‚れã€ãã®å¾Œãã®è¡Œã¯ ```DEBOUNCE``` ミリ秒ã®é–“入力ã•れã¾ã›ã‚“。
121```NUM_KEYS``` ã® 8ãƒ“ãƒƒãƒˆã‚«ã‚¦ãƒ³ã‚¿ã®æ›´æ–°ã«é«˜ã„計算コストãŒã‹ã‹ã‚‹ã€ã‚‚ã—ãã¯ä½Žã‚¹ã‚­ãƒ£ãƒ³ãƒ¬ãƒ¼ãƒˆã®ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ç”¨ã§ã€å„指ã¯é€šå¸¸ä¸€åº¦ã«1行ã—ã‹å©ã‹ãªã„よã†ã«ãªã£ã¦ã„ã¾ã™ã€‚ã“れ㯠ErgoDox モデルã«é©ã—ã¦ã„ã¾ã™; マトリックスã¯90度回転ã—ã¦ã„ã‚‹ãŸã‚ã€ãã®ã€Œè¡Œã€ã¯å®Ÿéš›ã«ã¯ã€Œåˆ—ã€ã§ã‚りã€é€šå¸¸ã®ä½¿ç”¨ã§ã¯å„指ã¯ä¸€åº¦ã«1ã¤ã®ã€Œè¡Œã€ã«ã—ã‹å½“ãŸã‚Šã¾ã›ã‚“。
122* ```sym_eager_pk``` - キーã”ã¨ã«ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã—ã¾ã™ã€‚状態ãŒå¤‰åŒ–ã™ã‚‹ã¨ã€å¿œç­”ã¯å³åº§ã«è¡Œã‚れã€ãã®å¾Œãã®ã‚­ãƒ¼ã¯ ```DEBOUNCE``` ミリ秒ã®é–“入力ã•れã¾ã›ã‚“。
123* ```sym_defer_pk``` - キーã”ã¨ã«ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã—ã¾ã™ã€‚状態ãŒå¤‰åŒ–ã™ã‚‹ã¨ã€ã‚­ãƒ¼ã”ã¨ã®ã‚¿ã‚¤ãƒžãƒ¼ãŒè¨­å®šã•れã¾ã™ã€‚```DEBOUNCE``` ミリ秒ã®é–“ãã®ã‚­ãƒ¼ã«å¤‰åŒ–ãŒãªã‘れã°ã€ã‚­ãƒ¼ã®çŠ¶æ…‹ã®å¤‰æ›´ãŒãƒ—ッシュã•れã¾ã™ã€‚
124
125### å°†æ¥å®Ÿè£…ã•れるå¯èƒ½æ€§ã®ã‚ã‚‹ã„ãã¤ã‹ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ :
126* ```sym_defer_pr```
127* ```sym_eager_g```
128* ```asym_eager_defer_pk```
129
130### 独自ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚³ãƒ¼ãƒ‰ã®ä½¿ç”¨
131独自ã®ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’実装ã™ã‚‹ãŸã‚ã®ã‚ªãƒ—ションãŒã‚りã¾ã™ã€‚次ã®ã‚ˆã†ã«ã—ã¾ã™:
132* ```rules.mk``` ã« ```DEBOUNCE_TYPE = custom``` を設定ã—ã¾ã™ã€‚
133* ```rules.mk``` ã« ```SRC += debounce.c``` を追加ã—ã¾ã™ã€‚
134* 独自㮠```debounce.c``` を追加ã—ã¾ã™ã€‚例ã«ã¤ã„ã¦ã¯ã€```quantum/debounce``` ã«ã‚ã‚‹ç¾åœ¨ã®å®Ÿè£…を見ã¦ãã ã•ã„。
135* デãƒã‚¦ãƒ³ã‚¹ã¯ã€å…¨ã¦ã®ãƒžãƒˆãƒªã‚¯ã‚¹ã‚¹ã‚­ãƒ£ãƒ³ã®å¾Œã§ç™ºç”Ÿã—ã¾ã™ã€‚
36* MATRIX_ROWS ã§ã¯ãªã num_rows を使ã£ã¦ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ãŒæ­£ã—ãサãƒãƒ¼ãƒˆã•れるよã†ã«ã—ã¾ã™ã€‚ 136* MATRIX_ROWS ã§ã¯ãªã num_rows を使ã£ã¦ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ãŒæ­£ã—ãサãƒãƒ¼ãƒˆã•れるよã†ã«ã—ã¾ã™ã€‚
137* アルゴリズムãŒä»–ã®ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«ã‚‚é©ç”¨ã§ãã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹å ´åˆã€```quantum/debounce``` ã«è¿½åŠ ã™ã‚‹ã“ã¨ã‚’検討ã—ã¦ãã ã•ã„。
37 138
38# インクルードã•れã¦ã„るデãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰é–“ã§ã®åˆ‡ã‚Šæ›¿ãˆ 139### å¤ã„åå‰
39独自㮠debounce.c をインクルードã™ã‚‹ã“ã¨ã§ç‹¬è‡ªã®ã‚³ãƒ¼ãƒ‰ã‚’使ã†ã‹ã€ã¾ãŸã¯ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã•れã¦ã„ã‚‹ä»–ã®ã‚³ãƒ¼ãƒ‰ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 140æ¬¡ã®æ—¢å­˜ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã®å¤ã„åå‰ã¯å¼•ãç¶šãサãƒãƒ¼ãƒˆã•れã¾ã™ãŒã€ä»£ã‚ã‚Šã«æ–°ã—ã„åå‰ã‚’使ã†ã“ã¨ã‚’推奨ã—ã¾ã™ã€‚
40å«ã¾ã‚Œã‚‹ãƒ‡ãƒã‚¦ãƒ³ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰ã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™: 141
41* eager_pr - 行ã”ã¨ã«ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã—ã¾ã™ã€‚状態ãŒå¤‰åŒ–ã™ã‚‹ã¨ã€å¿œç­”ã¯å³åº§ã«è¡Œã‚れã€ãã®å¾Œãã®è¡Œã¯ ```DEBOUNCE``` ミリ秒ã®é–“入力ã•れã¾ã›ã‚“。 142* sym_g - sym_defer_g ã®å¤ã„åå‰
42```NUM_KEYS``` ã® 8ãƒ“ãƒƒãƒˆã‚«ã‚¦ãƒ³ã‚¿ã®æ›´æ–°ã«é«˜ã„計算コストãŒã‹ã‹ã‚‹ã€ã‚‚ã—ãã¯ä½Žã‚¹ã‚­ãƒ£ãƒ³ãƒ¬ãƒ¼ãƒˆã®ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ç”¨ã§ã€å„指ã¯é€šå¸¸ä¸€åº¦ã«1行ã—ã‹å©ã‹ãªã„よã†ã«ãªã£ã¦ã„ã¾ã™ã€‚ã“れ㯠ErgoDox モデルã«é©ã—ã¦ã„ã¾ã™; マトリックスã¯90度回転ã—ã¦ã„ã‚‹ãŸã‚ã€ãã®ã€Œè¡Œã€ã¯å®Ÿéš›ã«ã¯ã€Œåˆ—ã€ã§ã‚りã€é€šå¸¸ã®ä½¿ç”¨ã§ã¯å„指ã¯ä¸€åº¦ã«1ã¤ã®ã€Œè¡Œã€ã«ã—ã‹å½“ãŸã‚Šã¾ã›ã‚“。 143* eager_pk - sym_eager_pk ã®å¤ã„åå‰
43* eager_pk - キーã”ã¨ã«ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã—ã¾ã™ã€‚状態ãŒå¤‰åŒ–ã™ã‚‹ã¨ã€å¿œç­”ã¯å³åº§ã«è¡Œã‚れã€ãã®å¾Œãã®ã‚­ãƒ¼ã¯ ```DEBOUNCE``` ミリ秒ã®é–“入力ã•れã¾ã›ã‚“。 144* sym_pk - sym_defer_pk ã®å¤ã„åå‰
44* sym_g - キーボードã”ã¨ã«ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã—ã¾ã™ã€‚状態ãŒå¤‰åŒ–ã™ã‚‹ã¨ã€ã‚°ãƒ­ãƒ¼ãƒãƒ«ã‚¿ã‚¤ãƒžãŒè¨­å®šã•れã¾ã™ã€‚```DEBOUNCE``` ミリ秒ã®é–“何も変化ãŒãªã‘れã°ã€å…¨ã¦ã®å…¥åŠ›ã®å¤‰æ›´ãŒãƒ—ッシュã•れã¾ã™ã€‚ 145* eager_pr - sym_eager_pr ã®å¤ã„åå‰
45* sym_pk - キーã”ã¨ã«ãƒ‡ãƒã‚¦ãƒ³ã‚¹ã—ã¾ã™ã€‚状態ãŒå¤‰åŒ–ã™ã‚‹ã¨ã€ã‚­ãƒ¼ã”ã¨ã®ã‚¿ã‚¤ãƒžãƒ¼ãŒè¨­å®šã•れã¾ã™ã€‚```DEBOUNCE``` ミリ秒ã®é–“ãã®ã‚­ãƒ¼ã«å¤‰åŒ–ãŒãªã‘れã°ã€ã‚­ãƒ¼ã®çŠ¶æ…‹ã®å¤‰æ›´ãŒãƒ—ッシュã•れã¾ã™ã€‚