diff options
author | ishtob <ishtob@gmail.com> | 2019-02-16 21:39:30 -0500 |
---|---|---|
committer | MechMerlin <30334081+mechmerlin@users.noreply.github.com> | 2019-02-16 18:39:30 -0800 |
commit | 2cee371bf125a6ec541dd7c5a809573facc7c456 (patch) | |
tree | 7bb6c074b759843d531eee67d65d91618bd79732 /quantum/quantum.c | |
parent | a7a647b7f6d707e9c952461beeca1f3637039d36 (diff) | |
download | qmk_firmware-2cee371bf125a6ec541dd7c5a809573facc7c456.tar.gz qmk_firmware-2cee371bf125a6ec541dd7c5a809573facc7c456.zip |
Haptic feedback generalized - DRV2605 and solenoids (#4939)
* initial work to add eeprom to haptic feedback and decouple the feedback process from keyboards
* Haptic feedback enhancements: on/off toggle working, feedback order working
todo:
-work on modes switching
-get modes switching to save to eeprom
* haptic enhancement - eeprom and modes added
* Added set and get functions for haptic feedback
* initial implementation of solenoids under haptic feedback
* changed eeprom to 32 bits to reserve blocks for future features
* start documentation of haptic feedback
* change keycode per comment from reviewers
* typo fixes
* added eeprom for solenoid configs
* added solenoid and docs
* Add/fix default parameters configs, improve docs
* more doc cleanup
* add in solenoid buzz toggle, clean up doc
* some fixes for error in compiling solenoid
* fix a chibios specific i2c read function and added one for AVR controllers in DRV2605L.c
* fixes for avr side issues
* update keymap
* fix keymap compile error
* fix bugs found during solenoid testing
* set pin that is not powered during bootloader
* added warning about certain pins on the MCU may trip solenoid during DFU/bootloader
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r-- | quantum/quantum.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c index 376578ade..cb4d5ee80 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c | |||
@@ -47,6 +47,9 @@ extern backlight_config_t backlight_config; | |||
47 | #include "process_midi.h" | 47 | #include "process_midi.h" |
48 | #endif | 48 | #endif |
49 | 49 | ||
50 | #ifdef HAPTIC_ENABLE | ||
51 | #include "haptic.h" | ||
52 | #endif | ||
50 | 53 | ||
51 | #ifdef ENCODER_ENABLE | 54 | #ifdef ENCODER_ENABLE |
52 | #include "encoder.h" | 55 | #include "encoder.h" |
@@ -179,6 +182,9 @@ void reset_keyboard(void) { | |||
179 | shutdown_user(); | 182 | shutdown_user(); |
180 | wait_ms(250); | 183 | wait_ms(250); |
181 | #endif | 184 | #endif |
185 | #ifdef HAPTIC_ENABLE | ||
186 | haptic_shutdown(); | ||
187 | #endif | ||
182 | // this is also done later in bootloader.c - not sure if it's neccesary here | 188 | // this is also done later in bootloader.c - not sure if it's neccesary here |
183 | #ifdef BOOTLOADER_CATERINA | 189 | #ifdef BOOTLOADER_CATERINA |
184 | *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific | 190 | *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific |
@@ -257,6 +263,9 @@ bool process_record_quantum(keyrecord_t *record) { | |||
257 | #if defined(AUDIO_ENABLE) && defined(AUDIO_CLICKY) | 263 | #if defined(AUDIO_ENABLE) && defined(AUDIO_CLICKY) |
258 | process_clicky(keycode, record) && | 264 | process_clicky(keycode, record) && |
259 | #endif //AUDIO_CLICKY | 265 | #endif //AUDIO_CLICKY |
266 | #ifdef HAPTIC_ENABLE | ||
267 | process_haptic(keycode, record) && | ||
268 | #endif //HAPTIC_ENABLE | ||
260 | process_record_kb(keycode, record) && | 269 | process_record_kb(keycode, record) && |
261 | #if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_KEYPRESSES) | 270 | #if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_KEYPRESSES) |
262 | process_rgb_matrix(keycode, record) && | 271 | process_rgb_matrix(keycode, record) && |
@@ -1049,6 +1058,9 @@ void matrix_init_quantum() { | |||
1049 | #if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE) | 1058 | #if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE) |
1050 | unicode_input_mode_init(); | 1059 | unicode_input_mode_init(); |
1051 | #endif | 1060 | #endif |
1061 | #ifdef HAPTIC_ENABLE | ||
1062 | haptic_init(); | ||
1063 | #endif | ||
1052 | matrix_init_kb(); | 1064 | matrix_init_kb(); |
1053 | } | 1065 | } |
1054 | 1066 | ||
@@ -1091,6 +1103,10 @@ void matrix_scan_quantum() { | |||
1091 | encoder_read(); | 1103 | encoder_read(); |
1092 | #endif | 1104 | #endif |
1093 | 1105 | ||
1106 | #ifdef HAPTIC_ENABLE | ||
1107 | haptic_task(); | ||
1108 | #endif | ||
1109 | |||
1094 | matrix_scan_kb(); | 1110 | matrix_scan_kb(); |
1095 | } | 1111 | } |
1096 | #if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_PIN) | 1112 | #if defined(BACKLIGHT_ENABLE) && defined(BACKLIGHT_PIN) |