summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorumi <57262844+umi-umi@users.noreply.github.com>2020-04-14 02:25:57 +0900
committerGitHub <noreply@github.com>2020-04-13 10:25:57 -0700
commit355b693e4e0d801ffc374cfc0e7a450f1d490310 (patch)
treea0f8b79c9d68e0844bae226ba42100aa02e25d10 /docs
parentf514ad550399fcfa23dad3406b391a2788b18c36 (diff)
[Docs] Japanese translation of docs/feature_dip_switch.md (#8673)
* add git_dip_switch.md translation * update based on comment * update based on comment
Diffstat (limited to 'docs')
-rw-r--r--docs/ja/feature_dip_switch.md95
1 files changed, 95 insertions, 0 deletions
diff --git a/docs/ja/feature_dip_switch.md b/docs/ja/feature_dip_switch.md
new file mode 100644
index 0000000000..1403485cad
--- /dev/null
+++ b/docs/ja/feature_dip_switch.md
@@ -0,0 +1,95 @@
+# DIP スイッチ
+
+<!---
+ original document: 0.8.94:docs/feature_dip_switch.md
+ git diff 0.8.94 HEAD -- docs/feature_dip_switch.md | cat
+-->
+
+DIP スイッチは、以下を `rules.mk` に追加することでサポートされます:
+
+ DIP_SWITCH_ENABLE = yes
+
+さらに、以下を `config.h` に追加します:
+
+```c
+#define DIP_SWITCH_PINS { B14, A15, A10, B9 }
+```
+
+## コールバック
+
+コールバック関数を `<keyboard>.c` に記述することができます:
+
+```c
+void dip_switch_update_kb(uint8_t index, bool active) {
+ dip_switch_update_user(index, active);
+}
+```
+
+
+あるいは `keymap.c` に記述することもできます:
+
+```c
+void dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+ case 0:
+ if(active) { audio_on(); } else { audio_off(); }
+ break;
+ case 1:
+ if(active) { clicky_on(); } else { clicky_off(); }
+ break;
+ case 2:
+ if(active) { music_on(); } else { music_off(); }
+ break;
+ case 3:
+ if (active) {
+ #ifdef AUDIO_ENABLE
+ PLAY_SONG(plover_song);
+ #endif
+ layer_on(_PLOVER);
+ } else {
+ #ifdef AUDIO_ENABLE
+ PLAY_SONG(plover_gb_song);
+ #endif
+ layer_off(_PLOVER);
+ }
+ break;
+ }
+}
+```
+
+更に、より複雑な処理ができるビットマスク関数をサポートします。
+
+
+```c
+void dip_switch_update_mask_kb(uint32_t state) {
+ dip_switch_update_mask_user(state);
+}
+```
+
+
+あるいは `keymap.c` に記述することもできます:
+
+```c
+void dip_switch_update_mask_user(uint32_t state) {
+ if (state & (1UL<<0) && state & (1UL<<1)) {
+ layer_on(_ADJUST); // C on esc
+ } else {
+ layer_off(_ADJUST);
+ }
+ if (state & (1UL<<0)) {
+ layer_on(_TEST_A); // A on ESC
+ } else {
+ layer_off(_TEST_A);
+ }
+ if (state & (1UL<<1)) {
+ layer_on(_TEST_B); // B on esc
+ } else {
+ layer_off(_TEST_B);
+ }
+}
+```
+
+
+## ハードウェア
+
+DIP スイッチの片側は MCU のピンへ直接配線し、もう一方の側はグラウンドに配線する必要があります。機能的に同じであるため、どちら側がどちらに接続されているかは問題にはならないはずです。