diff options
Diffstat (limited to 'drivers/haptic/solenoid.c')
-rw-r--r-- | drivers/haptic/solenoid.c | 100 |
1 files changed, 43 insertions, 57 deletions
diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c index 2d39dbc179..d645c379ae 100644 --- a/drivers/haptic/solenoid.c +++ b/drivers/haptic/solenoid.c @@ -19,91 +19,77 @@ #include "solenoid.h" #include "haptic.h" -bool solenoid_on = false; -bool solenoid_buzzing = false; -uint16_t solenoid_start = 0; -uint8_t solenoid_dwell = SOLENOID_DEFAULT_DWELL; +bool solenoid_on = false; +bool solenoid_buzzing = false; +uint16_t solenoid_start = 0; +uint8_t solenoid_dwell = SOLENOID_DEFAULT_DWELL; extern haptic_config_t haptic_config; +void solenoid_buzz_on(void) { haptic_set_buzz(1); } -void solenoid_buzz_on(void) { - haptic_set_buzz(1); -} - -void solenoid_buzz_off(void) { - haptic_set_buzz(0); -} - -void solenoid_set_buzz(int buzz) { - haptic_set_buzz(buzz); -} +void solenoid_buzz_off(void) { haptic_set_buzz(0); } +void solenoid_set_buzz(int buzz) { haptic_set_buzz(buzz); } void solenoid_dwell_minus(uint8_t solenoid_dwell) { - if (solenoid_dwell > 0) solenoid_dwell--; + if (solenoid_dwell > 0) solenoid_dwell--; } void solenoid_dwell_plus(uint8_t solenoid_dwell) { - if (solenoid_dwell < SOLENOID_MAX_DWELL) solenoid_dwell++; + if (solenoid_dwell < SOLENOID_MAX_DWELL) solenoid_dwell++; } -void solenoid_set_dwell(uint8_t dwell) { - solenoid_dwell = dwell; -} +void solenoid_set_dwell(uint8_t dwell) { solenoid_dwell = dwell; } void solenoid_stop(void) { - writePinLow(SOLENOID_PIN); - solenoid_on = false; - solenoid_buzzing = false; + writePinLow(SOLENOID_PIN); + solenoid_on = false; + solenoid_buzzing = false; } void solenoid_fire(void) { - if (!haptic_config.buzz && solenoid_on) return; - if (haptic_config.buzz && solenoid_buzzing) return; + if (!haptic_config.buzz && solenoid_on) return; + if (haptic_config.buzz && solenoid_buzzing) return; - solenoid_on = true; - solenoid_buzzing = true; - solenoid_start = timer_read(); - writePinHigh(SOLENOID_PIN); + solenoid_on = true; + solenoid_buzzing = true; + solenoid_start = timer_read(); + writePinHigh(SOLENOID_PIN); } void solenoid_check(void) { - uint16_t elapsed = 0; - - if (!solenoid_on) return; + uint16_t elapsed = 0; - elapsed = timer_elapsed(solenoid_start); + if (!solenoid_on) return; - //Check if it's time to finish this solenoid click cycle - if (elapsed > solenoid_dwell) { - solenoid_stop(); - return; - } + elapsed = timer_elapsed(solenoid_start); - //Check whether to buzz the solenoid on and off - if (haptic_config.buzz) { - if (elapsed / SOLENOID_MIN_DWELL % 2 == 0){ - if (!solenoid_buzzing) { - solenoid_buzzing = true; - writePinHigh(SOLENOID_PIN); - } + // Check if it's time to finish this solenoid click cycle + if (elapsed > solenoid_dwell) { + solenoid_stop(); + return; } - else { - if (solenoid_buzzing) { - solenoid_buzzing = false; - writePinLow(SOLENOID_PIN); - } + + // Check whether to buzz the solenoid on and off + if (haptic_config.buzz) { + if (elapsed / SOLENOID_MIN_DWELL % 2 == 0) { + if (!solenoid_buzzing) { + solenoid_buzzing = true; + writePinHigh(SOLENOID_PIN); + } + } else { + if (solenoid_buzzing) { + solenoid_buzzing = false; + writePinLow(SOLENOID_PIN); + } + } } - } } void solenoid_setup(void) { - setPinOutput(SOLENOID_PIN); - solenoid_fire(); + setPinOutput(SOLENOID_PIN); + solenoid_fire(); } -void solenoid_shutdown(void) { - writePinLow(SOLENOID_PIN); - -} +void solenoid_shutdown(void) { writePinLow(SOLENOID_PIN); } |