2020-11-10 16:02:44 +01:00
# ใใใใฐใฎ FAQ
<!-- -
2021-06-24 14:56:31 +02:00
original document: 0.12.45:docs/faq_debug.md
git diff 0.12.45 HEAD -- docs/faq_debug.md | cat
2020-11-10 16:02:44 +01:00
-->
ใใฎใใผใธใฏใใญใผใใผใใฎใใฉใใซใทใฅใผใใฃใณใฐใซใคใใฆใฎๆงใ
ใชไธ่ฌ็ใช่ณชๅใ่ชฌๆใใพใใ
2021-06-24 14:56:31 +02:00
## ใใใใฐ :id=debugging
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
`rules.mk` ใธ `CONSOLE_ENABLE = yes` ใฎ่จญๅฎใใใใจใญใผใใผใใฏใใใใฐๆ
ๅ ฑใๅบๅใใพใใใใใฉใซใใฎๅบๅใฏ้ๅธธใซ้ใใใใใฎใงใใใใใใใฐใขใผใใใชใณใซใใใใจใงใใใใฐๆ
ๅ ฑใฎ้ใๅขใใใใจใๅบๆฅใพใใใญใผใใใใฎ `DEBUG` ใญใผใณใผใใไฝฟ็จใใใใใใใใฐใขใผใใๆๅนใซใใ[ใณใใณใ](ja/feature_command.md)ๆฉ่ฝใไฝฟ็จใใใใไปฅไธใฎใณใผใใใญใผใใใใซ่ฟฝๅ ใใพใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
```c
void keyboard_post_init_user(void) {
// ๅธๆใใๅไฝใซๅใใใฆๅคใใซในใฟใใคใบใใพใ
debug_enable=true;
debug_matrix=true;
//debug_keyboard=true;
//debug_mouse=true;
}
2020-11-10 16:02:44 +01:00
```
2021-06-24 14:56:31 +02:00
## ใใใใฐใใผใซ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
ใญใผใใผใใฎใใใใฐใซไฝฟใใใใผใซใฏ2ใคใใใพใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
### QMK Toolbox ใไฝฟใฃใใใใใฐ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
ไบๆๆงใฎใใ็ฐๅขใงใฏใ[QMK Toolbox](https://github.com/qmk/qmk_toolbox) ใไฝฟใใใจใงใญใผใใผใใใใฎใใใใฐใกใใปใผใธใ่กจ็คบใงใใพใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
### hid_listen ใไฝฟใฃใใใใใฐ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
ใฟใผใใใซใใผในใฎๆนๆณใใๅฅฝใฟใงใใ๏ผ PJRC ใๆไพใใ [hid_listen ](https://www.pjrc.com/teensy/hid_listen.html ) ใใใใใฐใกใใปใผใธใฎ่กจ็คบใซไฝฟ็จใงใใพใใใใซใๆธใฟใฎๅฎ่กใใกใคใซใฏ WindowsใLinuxใMacOS ็จใ็จๆใใใฆใใพใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
## ็ฌ่ชใฎใใใใฐใกใใปใผใธใ้ไฟกใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
[ใซในใฟใ ใณใผใ ](ja/custom_quantum_functions.md )ๅ
ใใใใใใฐใกใใปใผใธใๅบๅใใใจไพฟๅฉใชๅ ดๅใใใใพใใใใใฏใจใฆใ็ฐกๅใงใใใใกใคใซใฎๅ
้ ญใซ `print.h` ใฎใคใณใฏใซใผใใ่ฟฝๅ ใใพใ:
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
```c
#include "print.h"
2020-11-10 16:02:44 +01:00
```
2021-06-24 14:56:31 +02:00
ใใฎๅพใฏใใใใคใใฎ็ฐใชใฃใ print ้ขๆฐใไฝฟ็จใใใใจใๅบๆฅใพใ:
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
* `print("string")` : ใทใณใใซใชๆๅญๅใๅบๅใใพใ
* `uprintf("%s string", var)` : ใใฉใผใใใใใใๆๅญๅใๅบๅใใพใ
* `dprint("string")` ใใใใฐใขใผใใๆๅนใชๅ ดๅใฎใฟใใทใณใใซใชๆๅญๅใๅบๅใใพใ
* `dprintf("%s string", var)` : ใใใใฐใขใผใใๆๅนใชๅ ดๅใฎใฟใใใฉใผใใใใใใๆๅญๅใๅบๅใใพใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
## ใใใใฐใฎไพ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
ไปฅไธใฏ็พๅฎไธ็ใงใฎๅฎ้ใฎใใใใฐๆๆณใฎไพใ้ใใใใฎใงใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
### ใใใชใใฏในไธใฎใฉใฎๅ ดๆใงใญใผๆผไธใ่ตทใใฃใใ๏ผ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
็งปๆคใใๅ ดๅใใPCB ใฎๅ้กใ่จบๆญใใๅ ดๅใใญใผๅ
ฅๅใๆญฃใใในใญใฃใณใใใฆใใใใฉใใใ็ขบ่ชใใใใจใๅฝน็ซใคๅ ดๅใใใใพใใใใฎๆๆณใงใฎใญใฎใณใฐใๆๅนๅใใใซใฏใ`keymap.c` ใธไปฅไธใฎใณใผใใ่ฟฝๅ ใใพใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
```c
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// ใณใณใฝใผใซใๆๅนๅใใใฆใใๅ ดๅใใใใชใใฏในไธใฎไฝ็ฝฎใจใญใผๆผไธ็ถๆ
ใๅบๅใใพใ
#ifdef CONSOLE_ENABLE
uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
#endif
return true;
}
```
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
ๅบๅไพ
```text
Waiting for device:.......
Listening:
KL: kc: 169, col: 0, row: 0, pressed: 1
KL: kc: 169, col: 0, row: 0, pressed: 0
KL: kc: 174, col: 1, row: 0, pressed: 1
KL: kc: 174, col: 1, row: 0, pressed: 0
KL: kc: 172, col: 2, row: 0, pressed: 1
KL: kc: 172, col: 2, row: 0, pressed: 0
```
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
### ใญใผในใญใฃใณใซใใใๆ้ใฎๆธฌๅฎ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
ใใใฉใผใใณในใฎๅ้กใใในใใใๅ ดๅใในใคใใใใใชใใฏในใในใญใฃใณใใ้ ปๅบฆใ็ฅใใใจใๅฝน็ซใกใพใใใใฎๆๆณใงใฎใญใฎใณใฐใๆๅนๅใใใซใฏ `config.h` ใธไปฅไธใฎใณใผใใ่ฟฝๅ ใใพใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
```c
#define DEBUG_MATRIX_SCAN_RATE
```
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
ๅบๅไพ
```text
> matrix scan frequency: 315
> matrix scan frequency: 313
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
> matrix scan frequency: 316
```
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
## `hid_listen` ใใใใคในใ่ช่ญใงใใชใ
ใใใคในใฎใใใใฐใณใณใฝใผใซใฎๆบๅใใงใใฆใใชใๅ ดๅใไปฅไธใฎใใใซ่กจ็คบใใใพใ:
2020-11-10 16:02:44 +01:00
```
2021-06-24 14:56:31 +02:00
Waiting for device:.........
2020-11-10 16:02:44 +01:00
```
2021-06-24 14:56:31 +02:00
ใใใคในใๆฅ็ถใใใใจใ*hid_listen* ใใใใคในใ่ฆใคใใไปฅไธใฎใกใใปใผใธใ่กจ็คบใใใพใ:
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
```
Waiting for new device:.........................
Listening:
2020-11-10 16:02:44 +01:00
```
2021-06-24 14:56:31 +02:00
ใใฎ 'Listening:' ใฎใกใใปใผใธใ่กจ็คบใใใชใๅ ดๅใฏใ[Makefile] ใ `CONSOLE_ENABLE=yes` ใซ่จญๅฎใใฆใใซใใใฆใฟใฆใใ ใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
Linux ใฎใใใช OS ใงใใใคในใซใขใฏใปในใใใซใฏใ็นๆจฉใๅฟ
่ฆใใใใใพใใใ`sudo hid_listen` ใ่ฉฆใใฆใใ ใใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
ๅคใใฎ Linux ใใฃในใใชใใฅใผใทใงใณใงใฏใๆฌกใฎๅ
ๅฎนใง `/etc/udev/rules.d/70-hid-listen.rules` ใจใใใใกใคใซใไฝๆใใใใจใงใroot ใจใใฆ hid_listen ใๅฎ่กใใๅฟ
่ฆใใชใใชใใพใ:
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
```
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="def1", TAG+="uaccess", RUN{builtin}+="uaccess"
```
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
abcd ใจ def1 ใใญใผใใผใใฎใใณใใผใจใใญใใฏใ IDใซ็ฝฎใๆใใฆใใ ใใใๆๅญใฏๅฐๆๅญใงใชใใใฐใชใใพใใใ`RUN{builtin}+="uaccess"` ใฎ้จๅใฏใๅคใใใฃในใใชใใฅใผใทใงใณใงใฎใฟๅฟ
่ฆใงใใ
2020-11-10 16:02:44 +01:00
2021-06-24 14:56:31 +02:00
## ใณใณใฝใผใซใซใกใใปใผใธใ่กจ็คบใใใชใ
ไปฅไธใ่ชฟในใฆใใ ใใ:
- *hid_listen* ใใใใคในใๆคๅบใใใไธ่จใ่ฆใฆใใ ใใใ
- **Magic**+d ใไฝฟใฃใฆใใใใฐใๆๅนใซใใใ[ใใธใใฏใณใใณใ](https://github.com/tmk/tmk_keyboard#magic-commands)ใ่ฆใฆใใ ใใใ
- `debug_enable=true` ใ่จญๅฎใใพใใ[ใใใใฐ](#debugging)ใ่ฆใฆใใ ใใใ
- ใใใใฐใใชใณใใฎไปฃใใใซ `print` ้ขๆฐใไฝฟใฃใฆใฟใฆใใ ใใใ**common/print.h** ใ่ฆใฆใใ ใใใ
- ใณใณใฝใผใซๆฉ่ฝใๆใคไปใฎใใใคในใๅๆญใใพใใ[Issue #97 ](https://github.com/tmk/tmk_keyboard/issues/97) ใ่ฆใฆใใ ใใใ