Fixed debounce timer mistake

I realized I has been subtracting the wrong way which cause the debounce to not work. I've fixed this now. I also added a debounce to the arming pin.
This commit is contained in:
2021-10-30 12:46:15 -05:00
parent 1d274a6a2c
commit 92f4db12ce

View File

@@ -73,14 +73,16 @@ volatile boolean is_enabled = false;
volatile boolean is_armed = false; volatile boolean is_armed = false;
boolean has_single_pulsed = false; boolean has_single_pulsed = false;
unsigned long debounce_timer = 0; unsigned long debounce_timer = 0;
volatile unsigned long armed_debounce = 0;
// Toggles the armed state of single fire mode. (Only toggles is signle fire mdoe is already enabled.) // Toggles the armed state of single fire mode. (Only toggles is signle fire mdoe is already enabled.)
void arm_single_fire(){ void arm_single_fire(){
if(is_enabled){ if(is_enabled && millis()-armed_debounce > 100){
is_armed = !is_armed; is_armed = !is_armed;
// Toggle the armed indicator light // Toggle the armed indicator light
digitalWrite(armed_indicator_pin, !digitalRead(armed_indicator_pin)); digitalWrite(armed_indicator_pin, !digitalRead(armed_indicator_pin));
digitalWrite(fired_indicator_pin, LOW); digitalWrite(fired_indicator_pin, LOW);
armed_debounce = millis();
} }
} }
@@ -248,7 +250,7 @@ void loop() {
// Check to see if the single pulse pin has been pulled LOW // Check to see if the single pulse pin has been pulled LOW
if(is_enabled){ if(is_enabled){
if(is_armed && debounce_timer-millis() > 100){ if(is_armed && millis() - debounce_timer > 100){
if(!digitalRead(single_pulse_trig_pin) && has_single_pulsed == false){ if(!digitalRead(single_pulse_trig_pin) && has_single_pulsed == false){
generate_waveform(sample_resolution); generate_waveform(sample_resolution);
has_single_pulsed = true; has_single_pulsed = true;
@@ -262,7 +264,7 @@ void loop() {
debounce_timer = millis(); debounce_timer = millis();
} }
} }
if(debounce_timer-millis()>250){ if(millis()-debounce_timer>250){
digitalWrite(fired_indicator_pin, LOW); digitalWrite(fired_indicator_pin, LOW);
} }
} }