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 /tmk_core/common | |
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 'tmk_core/common')
-rw-r--r-- | tmk_core/common/eeconfig.c | 9 | ||||
-rw-r--r-- | tmk_core/common/eeconfig.h | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c index 59b2bffbc..ded27e599 100644 --- a/tmk_core/common/eeconfig.c +++ b/tmk_core/common/eeconfig.c | |||
@@ -45,6 +45,7 @@ void eeconfig_init_quantum(void) { | |||
45 | eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default | 45 | eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default |
46 | eeprom_update_dword(EECONFIG_RGBLIGHT, 0); | 46 | eeprom_update_dword(EECONFIG_RGBLIGHT, 0); |
47 | eeprom_update_byte(EECONFIG_STENOMODE, 0); | 47 | eeprom_update_byte(EECONFIG_STENOMODE, 0); |
48 | eeprom_update_dword(EECONFIG_HAPTIC, 0); | ||
48 | 49 | ||
49 | eeconfig_init_kb(); | 50 | eeconfig_init_kb(); |
50 | } | 51 | } |
@@ -177,3 +178,11 @@ uint32_t eeconfig_read_user(void) { return eeprom_read_dword(EECONFIG_USER) | |||
177 | void eeconfig_update_user(uint32_t val) { eeprom_update_dword(EECONFIG_USER, val); } | 178 | void eeconfig_update_user(uint32_t val) { eeprom_update_dword(EECONFIG_USER, val); } |
178 | 179 | ||
179 | 180 | ||
181 | uint32_t eeconfig_read_haptic(void) { return eeprom_read_dword(EECONFIG_HAPTIC); } | ||
182 | /** \brief eeconfig update user | ||
183 | * | ||
184 | * FIXME: needs doc | ||
185 | */ | ||
186 | void eeconfig_update_haptic(uint32_t val) { eeprom_update_dword(EECONFIG_HAPTIC, val); } | ||
187 | |||
188 | |||
diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index eedd67602..d576634f5 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h | |||
@@ -41,6 +41,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
41 | #define EECONFIG_KEYBOARD (uint32_t *)15 | 41 | #define EECONFIG_KEYBOARD (uint32_t *)15 |
42 | #define EECONFIG_USER (uint32_t *)19 | 42 | #define EECONFIG_USER (uint32_t *)19 |
43 | 43 | ||
44 | #define EECONFIG_HAPTIC (uint32_t*)24 | ||
45 | |||
44 | /* debug bit */ | 46 | /* debug bit */ |
45 | #define EECONFIG_DEBUG_ENABLE (1<<0) | 47 | #define EECONFIG_DEBUG_ENABLE (1<<0) |
46 | #define EECONFIG_DEBUG_MATRIX (1<<1) | 48 | #define EECONFIG_DEBUG_MATRIX (1<<1) |
@@ -94,4 +96,9 @@ void eeconfig_update_kb(uint32_t val); | |||
94 | uint32_t eeconfig_read_user(void); | 96 | uint32_t eeconfig_read_user(void); |
95 | void eeconfig_update_user(uint32_t val); | 97 | void eeconfig_update_user(uint32_t val); |
96 | 98 | ||
99 | #ifdef HAPTIC_ENABLE | ||
100 | uint32_t eeconfig_read_haptic(void); | ||
101 | void eeconfig_update_haptic(uint32_t val); | ||
102 | #endif | ||
103 | |||
97 | #endif | 104 | #endif |