qmk_firmware/docs/de/newbs_testing_debugging.md
kuchosauronad0 b90edb75a3 [Docs] Start of German translation of documentation ()
* Initial commit

* Fix links so that they point to the german translation

* minor changes to the wording of some sentences
* correctly capitalize second person pronouns

* Fix links so that they point to the german translation

* minor changes to the wording of some sentences
* correctly capitalize second person pronouns

* Translate newbs_learn_more_resources.md

* Clear up some phrases

* Add newbs_building_firmware.md, fix spelling

* Add newbs_building_firmware.md, fix spelling

* Update docs/de/_summary.md

Danke

* Update docs/de/README.md

* Update docs/de/_summary.md

Ich wollte es kuerzer halten damit die Navigationsleiste nicht zu breit wird, aber das ist halt die deutsche Sprache :)

* Update docs/de/newbs.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs.md

* Update docs/de/newbs_learn_more_resources.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs.md

* Update docs/de/newbs.md

* Update docs/de/newbs.md

* Update docs/de/README.md

* Update docs/de/README.md

* Update docs/de/README.md

* Update docs/de/README.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_learn_more_resources.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_learn_more_resources.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_learn_more_resources.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_getting_started.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Update docs/de/newbs_building_firmware.md

* Apply suggestions from code review

* Add translation of newbs_flashing.md

* Apply suggestions from code review

Danke

* Add translation of Zadig-guide

* Translate newbs_testing_debugging.md to german

Co-Authored-By: Max Rumpf <max.rumpf1998@gmail.com>
Co-Authored-By: geisterfurz007 <geisterfurz007@users.noreply.github.com>
2019-11-20 12:02:56 -08:00

4.4 KiB

Testen und Debuggen

Nachdem Du deine Tastatur mit deiner angepassten Firmware geflasht hast, ist es nun an der Zeit sie auszuprobieren. Mit ein bisschen Glück sollte alles ohne Probleme funktionieren, wenn dies nicht der Fall ist, soll dieses Dokument dir dabei helfen, herauszufinden wo das Problem liegt.

Testen

Die Tastatur zu testen ist relativ selbsterklärend. Drücke jede der Tasten um dich zu versichern, dass der gesendete Keyode der ist, den du erwarten würdest. Dafür gibt es sogar ein paar Programme die helfen sollen, dass keine Taste ausgelassen wurde.

Anmerkung: Diese Programme werden weder von QMK bereitgestellt oder gutgeheißen.

Debuggen

Deine Tastatur wird Debug Informationen liefern wenn Du CONSOLE_ENABLE = yes in deiner rules.mk gesetzt hast. Die default-Ausgabe ist sehr beschränkt und kann wenn nötig durch die Aktivierung des Debug-Modes erhöht werden. Benutze dafür entweder den DEBUG Keycode in deiner Tastaturbelegung, das Command-Feature oder füge den folgenden Code zu deiner Tastaturbelegung hinzu.

void keyboard_post_init_user(void) {
  // Customise these values to desired behaviour
  debug_enable=true;
  debug_matrix=true;
  //debug_keyboard=true;
  //debug_mouse=true;
}

Debuggen mit der QMK Toolbox

Für kompatible Plattformen kann die QMK Toolbox benutzt werden um Debug-Nachrichten deiner Tastatur anzuzeigen.

Debuggen mit hid_listen

Bevorzugst Du es lieber auf der Befehlszeile zu debuggen? Dafür eignet sich das Programm hid_listen von PJRC. Binaries sind für Windows, Linux und MacOS verfügbar.

Eigene Debug-Nachrichten senden

Manchmal ist es hilfreich Debug-Nachrichten innerhalb deines eigenen Custom Codes zu drucken. Das ist ziemlich einfach. Beginne damit print.h am Anfang deiner Datei zu inkludieren:

#include <print.h>

Danach stehen dir verschiedene Druck-Funktionen zur Verfügung:

  • print("string"): Druckt einen simplen String
  • uprintf("%s string", var): Druckt einen formatierten String
  • dprint("string") Druckt einen simplen String, aber nur wenn der Debug-Mode aktiviert ist
  • dprintf("%s string", var): Druckt einen formatierten String, aber nur wenn der Debug-Mode aktiviert ist

Debug Beispiele

Anbei findest Du eine Sammlung von hilfreichen Beispielen. Für weitere Informationen Informationen sei an dieser Stelle auf Debugging/Troubleshooting QMK verwiesen.

Which matrix position is this keypress?

Welche Matrix Position hat dieser Tastenanschlag

Beim Portieren, oder bei der Fehlerdiagnose von PCB Problemen, ist es nützlich sich anzeigen zu lassen ob ein Tastenanschlag richtig erkannt wurde. Um die Protokollierung für diesen Fall zu aktivieren, füge bitte folgenden Code zu deiner Tastaturbelegung keymap.c hinzu.

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  // Wenn 'console' aktiviert ist wird die Matrix-Position und der Status jedes Tastenanschlags ausgegeben 
#ifdef CONSOLE_ENABLE
    uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
#endif 
  return true;
}

Beispiel Ausgabe:

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

Wieviel Zeit wurde benötigt um einen Tastenanschlag zu detektieren?

Wenn Performance-Probleme auftreten ist es hilfreich die Frequenz, mit der die Matrix gescannt wird, zu wissen. Um dies in diesem Fall zu aktiveren füge, den folgenden Code zu deiner Tastaturbelegung in config.h hinzu.

#define DEBUG_MATRIX_SCAN_RATE

Beispiel Ausgabe

  > matrix scan frequency: 315
  > matrix scan frequency: 313
  > matrix scan frequency: 316
  > matrix scan frequency: 316
  > matrix scan frequency: 316
  > matrix scan frequency: 316