aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2018-12-01 08:21:06 -0800
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2018-12-01 08:21:06 -0800
commit75a51659abfbc68874f2e9326f0adf1258fc5458 (patch)
tree217221b3cd4eec84a416f781c32e401bcbe6f896 /docs
parent5803012eda70d2ad85434e53820f2c93c310f92e (diff)
downloadqmk_firmware-75a51659abfbc68874f2e9326f0adf1258fc5458.tar.gz
qmk_firmware-75a51659abfbc68874f2e9326f0adf1258fc5458.zip
Add tap_random_base64 and software timer info to Useful Functions doc (#4360)
* Update docs * Add security caveat Co-Authored-By: drashna <drashna@live.com> * Wordsmithing Co-Authored-By: drashna <drashna@live.com> * Update docs/ref_functions.md Co-Authored-By: drashna <drashna@live.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/faq_keymap.md17
-rw-r--r--docs/ref_functions.md21
2 files changed, 21 insertions, 17 deletions
diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md
index 4e842d363..ae01e9387 100644
--- a/docs/faq_keymap.md
+++ b/docs/faq_keymap.md
@@ -211,20 +211,3 @@ here real_mods lost state for 'physical left shift'.
211 211
212weak_mods is ORed with real_mods when keyboard report is sent. 212weak_mods is ORed with real_mods when keyboard report is sent.
213https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57 213https://github.com/tmk/tmk_core/blob/master/common/action_util.c#L57
214
215## Timer Functionality
216
217It's possible to start timers and read values for time-specific events - here's an example:
218
219```c
220static uint16_t key_timer;
221key_timer = timer_read();
222
223if (timer_elapsed(key_timer) < 100) {
224 // do something if less than 100ms have passed
225} else {
226 // do something if 100ms or more have passed
227}
228```
229
230It's best to declare the `static uint16_t key_timer;` at the top of the file, outside of any code blocks you're using it in.
diff --git a/docs/ref_functions.md b/docs/ref_functions.md
index 9b5be7a88..174d9a95a 100644
--- a/docs/ref_functions.md
+++ b/docs/ref_functions.md
@@ -96,3 +96,24 @@ And to do so, add `reset_keyboard()` to your function or macro, and this will re
96If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). Bootmagic is one way to do this, but if that isn't enabled, then you can use a custom macro to do so. 96If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). Bootmagic is one way to do this, but if that isn't enabled, then you can use a custom macro to do so.
97 97
98To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default. 98To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default.
99
100## Tap random key
101
102If you want to send a random character to the host computer, you can use the `tap_random_base64()` function. This [pseudorandomly](https://en.wikipedia.org/wiki/Pseudorandom_number_generator) selects a number between 0 and 63, and then sends a key press based on that selection. (0–25 is `A`–`Z`, 26–51 is `a`–`z`, 52–61 is `0`–`9`, 62 is `+` and 63 is `/`).
103
104?> Needless to say, but this is _not_ a cryptographically secure method of generating random Base64 keys or passwords.
105
106## Software Timers
107
108It's possible to start timers and read values for time-specific events. Here's an example:
109
110```c
111static uint16_t key_timer;
112key_timer = timer_read();
113
114if (timer_elapsed(key_timer) < 100) {
115 // do something if less than 100ms have passed
116} else {
117 // do something if 100ms or more have passed
118}
119```