You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
4.4 KiB

  1. # Testeando y depurando
  2. Una vez que hayas flasheado tu teclado con un firmware personalizado estarás listo para probarlo. Con un poco de suerte todo funcionará a la primera, pero si no es así, este documento te ayudará a averiguar qué está mal.
  3. ## Probando
  4. Probar tu teclado es generalmente bastante sencillo. Persiona cada una de las teclas y asegúrate de que envía la tecla correcta. Existen incluso programas que te ayudarán a asegurarte de que no te dejas ninguna tecla sin comprobar.
  5. Nota: Estos programas no los provée ni están relacionados con QMK.
  6. * [Switch Hitter](https://elitekeyboards.com/switchhitter.php) (Sólo Windows)
  7. * [Keyboard Viewer](https://www.imore.com/how-use-keyboard-viewer-your-mac) (Sólo Mac)
  8. * [Keyboard Tester](https://www.keyboardtester.com) (Aplicación web)
  9. * [Keyboard Checker](https://keyboardchecker.com) (Aplicación web)
  10. ## Depurando
  11. Tu teclado mostrará información de depuración si tienes `CONSOLE_ENABLE = yes` en tu `rules.mk`. Por defecto la información de salida es muy limitada, pero puedes encender el modo de depuración para incrementar la información de salida. Utiliza el keycode `DEBUG` de tu keymap, usa la característica [Comando](feature_command.md) para activar el modo depuración, o añade el siguiente código a tu keymap.
  12. ```c
  13. void keyboard_post_init_user(void) {
  14. // Customise these values to desired behaviour
  15. debug_enable=true;
  16. debug_matrix=true;
  17. //debug_keyboard=true;
  18. //debug_mouse=true;
  19. }
  20. ```
  21. ### Depurando con QMK Toolbox
  22. Para plataformas compatibles, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) se puede usar para mostrar mensajes de depuración de tu teclado.
  23. ### Depurando con hid_listen
  24. ¿Prefieres una solución basada en una terminal? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provista por PJRC, se puede usar también para mostrar mensajes de depuración. Hay binarios preconstruídos para Windows,Linux,y MacOS.
  25. <!-- FIXME: Describe the debugging messages here. -->
  26. ## Enviando tus propios mensajes de depuración
  27. A veces, es útil imprimir mensajes de depuración desde tu [código personalizado](custom_quantum_functions.md). Hacerlo es bastante simple. Comienza incluyendo `print.h` al principio de tu fichero:
  28. ```c
  29. #include "print.h"
  30. ```
  31. Después de eso puedes utilzar algunas funciones print diferentes:
  32. * `print("string")`: Imprime un string simple
  33. * `uprintf("%s string", var)`: Imprime un string formateado
  34. * `dprint("string")` Imprime un string simple, pero sólo cuando el modo de depuración está activo
  35. * `dprintf("%s string", var)`: Imprime un string formateado, pero sólo cuando el modo de depuración está activo
  36. ## Ejemplos de depuración
  37. Debajo hay una colección de ejemplos de depuración del mundo real. Para información adicional, Dirígete a [Depurando/Encontrando problemas en QMK](faq_debug.md).
  38. ### ¿Que posición en la matriz tiene esta pulsación de tecla?
  39. Cuando estés portando, o intentando diagnosticar problemas en la pcb, puede ser útil saber si la pulsación de una tecla es escaneada correctamente. Para hablitar la información de registro en este escenario, añade el siguiente código al `keymap.c` de tus keymaps
  40. ```c
  41. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  42. // If console is enabled, it will print the matrix position and status of each key pressed
  43. #ifdef CONSOLE_ENABLE
  44. uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
  45. #endif
  46. return true;
  47. }
  48. ```
  49. Ejemplo de salida
  50. ```text
  51. Waiting for device:.......
  52. Listening:
  53. KL: kc: 169, col: 0, row: 0, pressed: 1
  54. KL: kc: 169, col: 0, row: 0, pressed: 0
  55. KL: kc: 174, col: 1, row: 0, pressed: 1
  56. KL: kc: 174, col: 1, row: 0, pressed: 0
  57. KL: kc: 172, col: 2, row: 0, pressed: 1
  58. KL: kc: 172, col: 2, row: 0, pressed: 0
  59. ```
  60. ### ¿Cuanto tiempo tardó en escanear la pulsación de una tecla?
  61. Cuando estés probando problemas en el rendimiento, puede ser útil saber la frecuenta a la cual la matríz de pulsadores se está escaneando. Para hablitar la información de registro en este escenario, añade el siguiente código al `config.h` de tus keymaps
  62. ```c
  63. #define DEBUG_MATRIX_SCAN_RATE
  64. ```
  65. Ejemplo de salida
  66. ```text
  67. > matrix scan frequency: 315
  68. > matrix scan frequency: 313
  69. > matrix scan frequency: 316
  70. > matrix scan frequency: 316
  71. > matrix scan frequency: 316
  72. > matrix scan frequency: 316
  73. ```