diff options
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/quantum.c | 35 | ||||
| -rw-r--r-- | quantum/quantum.h | 3 |
2 files changed, 38 insertions, 0 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c index c0580e0aa..224bfb795 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c | |||
| @@ -307,6 +307,41 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { | |||
| 307 | } | 307 | } |
| 308 | } | 308 | } |
| 309 | 309 | ||
| 310 | void tap_random_base64(void) { | ||
| 311 | uint8_t key = (TCNT0 + TCNT1 + TCNT3 + TCNT4) % 64; | ||
| 312 | // uint8_t key = rand() % 64; | ||
| 313 | switch (key) { | ||
| 314 | case 0 ... 25: | ||
| 315 | register_code(KC_LSFT); | ||
| 316 | register_code(key + KC_A); | ||
| 317 | unregister_code(key + KC_A); | ||
| 318 | unregister_code(KC_LSFT); | ||
| 319 | break; | ||
| 320 | case 26 ... 51: | ||
| 321 | register_code(key - 26 + KC_A); | ||
| 322 | unregister_code(key - 26 + KC_A); | ||
| 323 | break; | ||
| 324 | case 52: | ||
| 325 | register_code(KC_0); | ||
| 326 | unregister_code(KC_0); | ||
| 327 | break; | ||
| 328 | case 53 ... 61: | ||
| 329 | register_code(key - 53 + KC_1); | ||
| 330 | unregister_code(key - 53 + KC_1); | ||
| 331 | break; | ||
| 332 | case 62: | ||
| 333 | register_code(KC_LSFT); | ||
| 334 | register_code(KC_EQL); | ||
| 335 | unregister_code(KC_EQL); | ||
| 336 | unregister_code(KC_LSFT); | ||
| 337 | break; | ||
| 338 | case 63: | ||
| 339 | register_code(KC_SLSH); | ||
| 340 | unregister_code(KC_SLSH); | ||
| 341 | break; | ||
| 342 | } | ||
| 343 | } | ||
| 344 | |||
| 310 | void matrix_init_quantum() { | 345 | void matrix_init_quantum() { |
| 311 | #ifdef BACKLIGHT_ENABLE | 346 | #ifdef BACKLIGHT_ENABLE |
| 312 | backlight_init_ports(); | 347 | backlight_init_ports(); |
diff --git a/quantum/quantum.h b/quantum/quantum.h index ad180c71f..dd290ac00 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h | |||
| @@ -60,6 +60,9 @@ void send_string(const char *str); | |||
| 60 | 60 | ||
| 61 | // For tri-layer | 61 | // For tri-layer |
| 62 | void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); | 62 | void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); |
| 63 | |||
| 64 | void tap_random_base64(void); | ||
| 65 | |||
| 63 | #define IS_LAYER_ON(layer) (layer_state & (1UL << (layer))) | 66 | #define IS_LAYER_ON(layer) (layer_state & (1UL << (layer))) |
| 64 | #define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer))) | 67 | #define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer))) |
| 65 | 68 | ||
