diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/.clang-format b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/.clang-format new file mode 100644 index 0000000..fab33b7 --- /dev/null +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/.clang-format @@ -0,0 +1,3 @@ +BasedOnStyle: LLVM +ColumnLimit: 200 +AllowShortFunctionsOnASingleLine: false \ No newline at end of file diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/.vscode/extensions.json b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/.vscode/extensions.json index 272828b..e80666b 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/.vscode/extensions.json +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/.vscode/extensions.json @@ -1,7 +1,7 @@ { - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "platformio.platformio-ide" - ] -} \ No newline at end of file + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ] +} diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/LightChrono.cpp b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/LightChrono.cpp index 14b719b..64257f0 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/LightChrono.cpp +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/LightChrono.cpp @@ -1,22 +1,22 @@ /* * Lightweight chronometer class. * Simple chronometer/stopwatch class that counts the time passed since started. - * + * * (c) 2015 Sofian Audry :: info(@)sofianaudry(.)com * (c) 2015 Thomas O Fredericks :: tof(@)t-o-f(.)info * * The MIT License (MIT) - * + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -32,24 +32,23 @@ #endif #include "LightChrono.h" -LightChrono::LightChrono() -{ +LightChrono::LightChrono() { restart(); } -void LightChrono::start() { restart(); } +void LightChrono::start() { + restart(); +} -void LightChrono::restart() -{ +void LightChrono::restart() { _startTime = millis(); } LightChrono::chrono_t LightChrono::elapsed() const { - return (millis() - _startTime); + return (millis() - _startTime); } -bool LightChrono::hasPassed(LightChrono::chrono_t timeout) const -{ +bool LightChrono::hasPassed(LightChrono::chrono_t timeout) const { return (elapsed() >= timeout); } @@ -58,10 +57,7 @@ bool LightChrono::hasPassed(LightChrono::chrono_t timeout, bool restartIfPassed) if (restartIfPassed) restart(); return true; - } - else { + } else { return false; } } - - diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/LightChrono.h b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/LightChrono.h index 1060a3b..e846e8e 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/LightChrono.h +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/LightChrono.h @@ -1,22 +1,22 @@ /* * Lightweight chronometer class. * Simple chronometer/stopwatch class that counts the time passed since started. - * + * * (c) 2015 Sofian Audry :: info(@)sofianaudry(.)com * (c) 2015 Thomas O Fredericks :: tof(@)t-o-f(.)info * * The MIT License (MIT) - * + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39,8 +39,7 @@ * // do something * // ... */ -class LightChrono -{ +class LightChrono { public: #if defined(ARDUINO_ARC32_TOOLS) typedef uint64_t chrono_t; @@ -68,5 +67,3 @@ public: }; #endif - - diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/Pyr0_Piezo_Sensor_V2.x.x.cpp b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/Pyr0_Piezo_Sensor_V2.x.x.cpp index a5ddd49..5c1e315 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/Pyr0_Piezo_Sensor_V2.x.x.cpp +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/Pyr0_Piezo_Sensor_V2.x.x.cpp @@ -85,39 +85,39 @@ update the voltMeterConstant variable in pP_config.h with the correct value ------------------------------------------------------------*/ // Headers, variables, and functions -#include -#include #include "LightChrono.h" #include "pP_pins.h" +#include +#include // #include "pP_config.h" -#include "pP_volatile.h" #include "pP_function.h" #include "pP_serial.h" +#include "pP_volatile.h" // i2c input toggle. Uncomment to enable #define I2C_INPUT void setup() { - //Setup PWM on voltage follower (PD3) + // Setup PWM on voltage follower (PD3) TCCR2A = (1 << COM2B1) | (0 << COM2B0) | (0 << WGM21) | (1 << WGM20); TCCR2B = (0 << WGM22) | (0 << CS22) | (0 << CS21) | (1 << CS20); DDRD |= (1 << DDD3); - //Setup PWM on comparator (PB1) + // Setup PWM on comparator (PB1) TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (1 << WGM10); TCCR1B = (0 << WGM13) | (0 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10); DDRB |= (1 << DDB1); - pinMode(TRG_OUT, OUTPUT); // declare the Trigger as as OUTPUT + pinMode(TRG_OUT, OUTPUT); // declare the Trigger as as OUTPUT pinMode(ERR_LED, OUTPUT); pinMode(PZDET_PIN, INPUT_PULLUP); - pinMode(Z_TRG, INPUT_PULLUP); // declare z-sense input with pullup + pinMode(Z_TRG, INPUT_PULLUP); // declare z-sense input with pullup pinMode(V_FOLLOW_PIN, INPUT); pinMode(VCOMP_SENSE_PIN, INPUT); - pinMode(GADJ_R0, INPUT); // declare input to set high impedance - pinMode(GADJ_R1, INPUT); // declare input to set high impedance - pinMode(GADJ_R2, INPUT); // declare input to set high impedance - pinMode(GADJ_R3, INPUT); // declare input to set high impedance + pinMode(GADJ_R0, INPUT); // declare input to set high impedance + pinMode(GADJ_R1, INPUT); // declare input to set high impedance + pinMode(GADJ_R2, INPUT); // declare input to set high impedance + pinMode(GADJ_R3, INPUT); // declare input to set high impedance attachInterrupt(digitalPinToInterrupt(Z_TRG), pulse, FALLING); @@ -140,7 +140,7 @@ void loop() { if (BlinkCount > 0) { BlinkState = !BlinkState; digitalWriteFast(ERR_LED, BlinkState); - //digitalWriteFast(TRG_OUT, BlinkState); + // digitalWriteFast(TRG_OUT, BlinkState); --BlinkCount; } @@ -162,11 +162,11 @@ void loop() { VLast = VOld - Vin; if (VLast > Hyst || VLast < -Hyst) { - // Voltage Follower adjustment + // Voltage Follower adjustment adjustFollow(); - // Voltage Comparator adjustment + // Voltage Comparator adjustment adjustComp(); - // Alert the user that auto-calibration is ongoing + // Alert the user that auto-calibration is ongoing ERR_STATE = 1; } else { ERR_STATE = 0; @@ -179,11 +179,11 @@ void loop() { if (BlinkCount > 0) { BlinkState = !BlinkState; digitalWriteFast(ERR_LED, BlinkState); -// digitalWriteFast(TRG_OUT, BlinkState); + // digitalWriteFast(TRG_OUT, BlinkState); --BlinkCount; -// } else { + // } else { // Check for error state -// checkError(); + // checkError(); } else { digitalWriteFast(ERR_LED, 0); } @@ -193,7 +193,7 @@ void loop() { serialPrintState(); } // Sets trigger output state to false after completing loop - //digitalWriteFast(TRG_OUT, HIGH); + // digitalWriteFast(TRG_OUT, HIGH); sensorHReading = 0; } } diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_cmd.h b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_cmd.h index 9e4d335..c4de8c0 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_cmd.h +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_cmd.h @@ -1,119 +1,97 @@ #ifndef PP_CMD_H #define PP_CMD_H +#include "EEPROM.h" #include "pP_config.h" #include "pP_function.h" -#include "EEPROM.h" /*------------------------------------------------*/ -void updateGainFactor(int value) -{ - if (value >= 0) - { - GAIN_FACTOR = value; - adjustGain(); - EEPROM.put(GAIN_FACTOR_ADDRESS, GAIN_FACTOR); - } +void updateGainFactor(int value) { + if (value >= 0) { + GAIN_FACTOR = value; + adjustGain(); + EEPROM.put(GAIN_FACTOR_ADDRESS, GAIN_FACTOR); + } } /*------------------------------------------------*/ -void updateVFol(int value) -{ - if (value >= 0) - { - followerThrs = value; - adjustFollow(); - EEPROM.put(FOLLOWER_THRESHOLD_ADDRESS, followerThrs); - } +void updateVFol(int value) { + if (value >= 0) { + followerThrs = value; + adjustFollow(); + EEPROM.put(FOLLOWER_THRESHOLD_ADDRESS, followerThrs); + } } /*------------------------------------------------*/ -void updateVComp(int value) -{ - if (value >= 0) - { - compThrs = value; - adjustComp(); - EEPROM.put(COMP_THRESHOLD_ADDRESS, compThrs); - } +void updateVComp(int value) { + if (value >= 0) { + compThrs = value; + adjustComp(); + EEPROM.put(COMP_THRESHOLD_ADDRESS, compThrs); + } } /*------------------------------------------------*/ -void updateLoopDuration(int value) -{ - if (value >= 0) - { - LOOP_DUR = value; - EEPROM.put(LOOP_DUR_ADDRESS, LOOP_DUR); - } +void updateLoopDuration(int value) { + if (value >= 0) { + LOOP_DUR = value; + EEPROM.put(LOOP_DUR_ADDRESS, LOOP_DUR); + } } /*------------------------------------------------*/ -void updateTrigDuration(int value) -{ - if (value >= 0) - { - TRG_DUR = value; - EEPROM.put(TRG_DUR_ADDRESS, TRG_DUR); - } +void updateTrigDuration(int value) { + if (value >= 0) { + TRG_DUR = value; + EEPROM.put(TRG_DUR_ADDRESS, TRG_DUR); + } } /*------------------------------------------------*/ -void updateHysteresis(int value) -{ - if (value >= 0) - { - Hyst = value; - EEPROM.put(HYST_ADDRESS, Hyst); - } +void updateHysteresis(int value) { + if (value >= 0) { + Hyst = value; + EEPROM.put(HYST_ADDRESS, Hyst); + } } /*------------------------------------------------*/ -void updateLogic(int value) -{ - if (value >= 0) - { - LOGIC = value; - EEPROM.put(LOGIC_ADDRESS, LOGIC); - pulse(); - } +void updateLogic(int value) { + if (value >= 0) { + LOGIC = value; + EEPROM.put(LOGIC_ADDRESS, LOGIC); + pulse(); + } } /*------------------------------------------------*/ -void updatePzDet(int value) -{ - if (value >= 0) - { - PZDET = value; - EEPROM.put(PZDET_ADDRESS, PZDET); - } +void updatePzDet(int value) { + if (value >= 0) { + PZDET = value; + EEPROM.put(PZDET_ADDRESS, PZDET); + } } /*------------------------------------------------*/ -void updateConstant(long value) -{ - if (value >= 0) - { - voltMeterConstant = value; - EEPROM.put(VM_CONST_ADDRESS, voltMeterConstant); - } +void updateConstant(long value) { + if (value >= 0) { + voltMeterConstant = value; + EEPROM.put(VM_CONST_ADDRESS, voltMeterConstant); + } } /*------------------------------------------------*/ -void updateDebug(int value) -{ - if (value > 0) - { - Debug = 1; - } - else if (value == 0) - { - Debug = 0; - } +void updateDebug(int value) { + if (value > 0) { + Debug = 1; + } else if (value == 0) { + Debug = 0; + } } -#endif //PP_CMD_H \ No newline at end of file +#endif // PP_CMD_H \ No newline at end of file diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_config.cpp b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_config.cpp index a1f426b..054203a 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_config.cpp +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_config.cpp @@ -15,108 +15,108 @@ long voltMeterConstant = VM_CONST_DEFAULT; /*------------------------------------------------*/ void eraseEEPROM() { - - setDefaultConfig(); - - EEPROM.put(GAIN_FACTOR_ADDRESS, GAIN_FACTOR); - EEPROM.put(FOLLOWER_THRESHOLD_ADDRESS, followerThrs); - EEPROM.put(COMP_THRESHOLD_ADDRESS, compThrs); - EEPROM.put(LOOP_DUR_ADDRESS, LOOP_DUR); - EEPROM.put(TRG_DUR_ADDRESS, TRG_DUR); - EEPROM.put(HYST_ADDRESS, Hyst); - EEPROM.put(PZDET_ADDRESS, PZDET); - EEPROM.put(LOGIC_ADDRESS, LOGIC); - EEPROM.put(VM_CONST_ADDRESS, voltMeterConstant); + + setDefaultConfig(); + + EEPROM.put(GAIN_FACTOR_ADDRESS, GAIN_FACTOR); + EEPROM.put(FOLLOWER_THRESHOLD_ADDRESS, followerThrs); + EEPROM.put(COMP_THRESHOLD_ADDRESS, compThrs); + EEPROM.put(LOOP_DUR_ADDRESS, LOOP_DUR); + EEPROM.put(TRG_DUR_ADDRESS, TRG_DUR); + EEPROM.put(HYST_ADDRESS, Hyst); + EEPROM.put(PZDET_ADDRESS, PZDET); + EEPROM.put(LOGIC_ADDRESS, LOGIC); + EEPROM.put(VM_CONST_ADDRESS, voltMeterConstant); } // Restore config from EEPROM, otherwise erase config and write to EEPROM void restoreConfig() { - int temp; - - bool erase = false; + int temp; - EEPROM.get(GAIN_FACTOR_ADDRESS, temp); - if (temp < 0 || temp > 4) { - erase = true; - } else { - GAIN_FACTOR = temp; - } + bool erase = false; - EEPROM.get(FOLLOWER_THRESHOLD_ADDRESS, temp); - if (temp < 0 || temp > 5000) { - erase = true; - } else { - followerThrs = temp; - } + EEPROM.get(GAIN_FACTOR_ADDRESS, temp); + if (temp < 0 || temp > 4) { + erase = true; + } else { + GAIN_FACTOR = temp; + } - EEPROM.get(COMP_THRESHOLD_ADDRESS, temp); - if (temp < 0 || temp > 5000) { - erase = true; - } else { - compThrs = temp; - } + EEPROM.get(FOLLOWER_THRESHOLD_ADDRESS, temp); + if (temp < 0 || temp > 5000) { + erase = true; + } else { + followerThrs = temp; + } - EEPROM.get(LOOP_DUR_ADDRESS, temp); - if (temp < 0 && temp > 1000) { - erase = true; - } else { - LOOP_DUR = temp; - } + EEPROM.get(COMP_THRESHOLD_ADDRESS, temp); + if (temp < 0 || temp > 5000) { + erase = true; + } else { + compThrs = temp; + } - EEPROM.get(TRG_DUR_ADDRESS, temp); - if (temp < 0 || temp > 1000) { - erase = true; - } else { - TRG_DUR = temp; - } + EEPROM.get(LOOP_DUR_ADDRESS, temp); + if (temp < 0 && temp > 1000) { + erase = true; + } else { + LOOP_DUR = temp; + } - EEPROM.get(HYST_ADDRESS, temp); - if (temp < 0 || temp > 1000) { - erase = true; - } else { - Hyst = temp; - } + EEPROM.get(TRG_DUR_ADDRESS, temp); + if (temp < 0 || temp > 1000) { + erase = true; + } else { + TRG_DUR = temp; + } - EEPROM.get(PZDET_ADDRESS, temp); - if (temp < 0 || temp > 1) { - erase = true; - } else { - PZDET = temp; - } + EEPROM.get(HYST_ADDRESS, temp); + if (temp < 0 || temp > 1000) { + erase = true; + } else { + Hyst = temp; + } - EEPROM.get(LOGIC_ADDRESS, temp); - if (temp < 0 || temp > 1) { - erase = true; - } else { - LOGIC = temp; - } + EEPROM.get(PZDET_ADDRESS, temp); + if (temp < 0 || temp > 1) { + erase = true; + } else { + PZDET = temp; + } - long longTemp; - EEPROM.get(VM_CONST_ADDRESS, longTemp); - if (longTemp < 1000000L || longTemp > 1200000L) { - erase = true; - } else { - voltMeterConstant = longTemp; - } - - if (erase) { - eraseEEPROM(); - } + EEPROM.get(LOGIC_ADDRESS, temp); + if (temp < 0 || temp > 1) { + erase = true; + } else { + LOGIC = temp; + } - adjustFollow(); - adjustComp(); + long longTemp; + EEPROM.get(VM_CONST_ADDRESS, longTemp); + if (longTemp < 1000000L || longTemp > 1200000L) { + erase = true; + } else { + voltMeterConstant = longTemp; + } + + if (erase) { + eraseEEPROM(); + } + + adjustFollow(); + adjustComp(); } void setDefaultConfig() { - GAIN_FACTOR = GAIN_FACTOR_DEFAULT; - followerThrs = FOLLOWER_THRESHOLD_DEFAULT; - compThrs = COMP_THRESHOLD_DEFAULT; - LOOP_DUR = LOOP_DUR_DEFAULT; - TRG_DUR = TRG_DUR_DEFAULT; - Hyst = HYST_DEFAULT; - PZDET = PZDET_DEFAULT; - LOGIC = LOGIC_DEFAULT; - voltMeterConstant = VM_CONST_DEFAULT; - adjustFollow(); - adjustComp(); + GAIN_FACTOR = GAIN_FACTOR_DEFAULT; + followerThrs = FOLLOWER_THRESHOLD_DEFAULT; + compThrs = COMP_THRESHOLD_DEFAULT; + LOOP_DUR = LOOP_DUR_DEFAULT; + TRG_DUR = TRG_DUR_DEFAULT; + Hyst = HYST_DEFAULT; + PZDET = PZDET_DEFAULT; + LOGIC = LOGIC_DEFAULT; + voltMeterConstant = VM_CONST_DEFAULT; + adjustFollow(); + adjustComp(); } \ No newline at end of file diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_config.h b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_config.h index 14ae5ee..b73697e 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_config.h +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_config.h @@ -48,7 +48,7 @@ extern long voltMeterConstant; // For fine tuning input voltage sense #ifdef I2C_INPUT #define I2C_SLAVE_ADDRESS 24 uint8_t pP_i2c_address = 0xa0; // I2C Bus Address -#endif // I2C_INPUT +#endif // I2C_INPUT void eraseEEPROM(); void setDefaultConfig(); diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_function.cpp b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_function.cpp index 44e8332..c67eafc 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_function.cpp +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_function.cpp @@ -9,24 +9,19 @@ #include "pP_function.h" #include "Arduino.h" #include "pP_config.h" -#include "pP_volatile.h" #include "pP_pins.h" +#include "pP_volatile.h" #include "stdint.h" -void digitalWriteFast(uint8_t pin, uint8_t x) -{ - if (pin / 8) - { // pin >= 8 +void digitalWriteFast(uint8_t pin, uint8_t x) { + if (pin / 8) { // pin >= 8 PORTB ^= (-x ^ PORTB) & (1 << (pin % 8)); - } - else - { + } else { PORTD ^= (-x ^ PORTD) & (1 << (pin % 8)); } } -int analogReadFast(uint8_t ADCpin) -{ +int analogReadFast(uint8_t ADCpin) { byte ADCSRAoriginal = ADCSRA; ADCSRA = (ADCSRA & B11111000) | 4; int adc = analogRead(ADCpin); @@ -36,15 +31,13 @@ int analogReadFast(uint8_t ADCpin) /*------------------------------------------------*/ -void doubleFlash() -{ +void doubleFlash() { BlinkCount = 4; } /*------------------------------------------------*/ -void pulse() -{ +void pulse() { digitalWriteFast(TRG_OUT, LOGIC); sensorHReading = 1; delay(TRG_DUR); @@ -55,8 +48,7 @@ void pulse() /*------------------------------------------------*/ -long readVcc() -{ +long readVcc() { // Read 1.1V reference against AVcc // Atmega's Secret Voltmeter setup: @@ -103,8 +95,7 @@ If the scale_constant calculated is different from the default 1125300, update the voltMeterConstant variable in pP_config.h with the correct value --------------------------------------------------*/ -void readVin() -{ +void readVin() { VOld = Vin; Vin = readVcc(); followerLong = followerThrs * 1023L; @@ -117,8 +108,7 @@ void readVin() /*------------------------------------------------*/ -void adjustFollow() -{ +void adjustFollow() { /* Compares diffs of threshold vs read value if positive, adjusts the follower to within the range set above*/ @@ -133,8 +123,7 @@ void adjustFollow() /*------------------------------------------------*/ -void adjustComp() -{ +void adjustComp() { compLong = compThrs * 1023L; compInt = (long long)compLong / Vin; compInt = (int)compInt; @@ -143,21 +132,17 @@ void adjustComp() /*------------------------------------------------*/ -void calibrateAlert() -{ +void calibrateAlert() { VLast = VOld - Vin; - if (VLast > Hyst || VLast < -Hyst) - { + if (VLast > Hyst || VLast < -Hyst) { ERR_STATE = 1; } } /*------------------------------------------------*/ -void adjustGain() -{ - switch (GAIN_FACTOR) - { +void adjustGain() { + switch (GAIN_FACTOR) { case 4: pinMode(GADJ_R0, OUTPUT); digitalWriteFast(GADJ_R0, LOW); @@ -192,7 +177,7 @@ void adjustGain() /*------------------------------------------------*/ -//void checkError () { +// void checkError () { // if (ERR_STATE == 1) { // digitalWriteFast(ERR_LED, BlinkState); // BlinkState = !BlinkState; @@ -205,12 +190,10 @@ void adjustGain() /*------------------------------------------------*/ -void pzConCheck() -{ +void pzConCheck() { PZ_STATE = digitalRead(PZDET_PIN); - if (PZ_STATE == PZDET) - { - //digitalWriteFast(TRG_OUT, LOGIC); + if (PZ_STATE == PZDET) { + // digitalWriteFast(TRG_OUT, LOGIC); ERR_STATE = 1; } } \ No newline at end of file diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_function.h b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_function.h index beecc0b..a7801a9 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_function.h +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_function.h @@ -38,7 +38,7 @@ void adjustFollow(); void adjustComp(); void calibrateAlert(); void adjustGain(); -//void checkError () { +// void checkError () { // if (ERR_STATE == 1) { // digitalWriteFast(ERR_LED, BlinkState); // BlinkState = !BlinkState; @@ -50,4 +50,4 @@ void adjustGain(); //} void pzConCheck(); -#endif //PP_FUNCTION_H \ No newline at end of file +#endif // PP_FUNCTION_H \ No newline at end of file diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_i2c.cpp b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_i2c.cpp index fc23912..a8c2e8c 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_i2c.cpp +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_i2c.cpp @@ -1,16 +1,15 @@ #ifdef I2C_INPUT -#include -#include "pP_config.h" #include "pP_i2c.h" +#include "pP_config.h" +#include #include byte registerMap[regMapSize]; byte registerMapTemp[regMapSize - 1]; byte receivedCommands[maxBytes]; -pP_i2c::pP_i2c(){ - +pP_i2c::pP_i2c() { } void pP_i2c::init() { @@ -24,19 +23,15 @@ void pP_i2c::i2cReportStatus() { } void pP_i2c::i2cReportVersion() { - } void pP_i2c::i2cReportConfig() { - } void pP_i2c::i2cReportIdentity() { - } void pP_i2c::i2cRequestInput() { - } void pP_i2c::i2cReply() { @@ -68,64 +63,64 @@ void pP_i2c::i2cInput(int bytesReceived) { // Parse commands and apply changes or actions switch (cmdRcvd[0]) { - case 0x00: - i2cReportStatus(); - return; - break; - case 0x01: - followerInt = (int) cmdRcvd[1]; - return; - break; - case 0x02: - compInt = (int) cmdRcvd[1]; - return; - break; - case 0x03: - GAIN_FACTOR = (int) cmdRcvd[1]; - return; - break; - case 0x04: - Hyst = (int) cmdRcvd[1]; - return; - break; - case 0x05: - LOOP_DUR = (int) cmdRcvd[1]; - return; - break; - case 0x06: - LOGIC = (int) cmdRcvd[1]; - return; - break; - case 0x07: - PZDET = (int) cmdRcvd[1]; - return; - break; - case 0x08: - TRG_DUR = (int) cmdRcvd[1]; - return; - break; - case 0x09: - DEBUG = (int) cmdRcvd[1]; - return; - break; - case 0x0a: - voltMeterConstant = longRcvd[0]*65536+longRcvd[1]*256+longRcvd[2]; - return; - break; - case 0x0b: - reportVersion(); - return; - break; - case 0x0c: - reportConfig(); - return; - break; - case 0x0d: - reportIdentity(); - return; - break; - default: - return; + case 0x00: + i2cReportStatus(); + return; + break; + case 0x01: + followerInt = (int)cmdRcvd[1]; + return; + break; + case 0x02: + compInt = (int)cmdRcvd[1]; + return; + break; + case 0x03: + GAIN_FACTOR = (int)cmdRcvd[1]; + return; + break; + case 0x04: + Hyst = (int)cmdRcvd[1]; + return; + break; + case 0x05: + LOOP_DUR = (int)cmdRcvd[1]; + return; + break; + case 0x06: + LOGIC = (int)cmdRcvd[1]; + return; + break; + case 0x07: + PZDET = (int)cmdRcvd[1]; + return; + break; + case 0x08: + TRG_DUR = (int)cmdRcvd[1]; + return; + break; + case 0x09: + DEBUG = (int)cmdRcvd[1]; + return; + break; + case 0x0a: + voltMeterConstant = longRcvd[0] * 65536 + longRcvd[1] * 256 + longRcvd[2]; + return; + break; + case 0x0b: + reportVersion(); + return; + break; + case 0x0c: + reportConfig(); + return; + break; + case 0x0d: + reportIdentity(); + return; + break; + default: + return; } } #endif diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_i2c.h b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_i2c.h index a21df47..22fae9e 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_i2c.h +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_i2c.h @@ -2,23 +2,23 @@ #define _pP_i2c_h_ #ifdef I2C_INPUT -#define status_Offset 0x00 // Status register -#define senseInt_Offset 0x01 // Integer of sense threshold in millivolts -#define compInt_Offset 0x02 // Integer of comparator threshold in millivolts -#define gainFactor_Offset 0x03 // Gain adjustment factor. 0=3x, 1=3.5x, 2=4.33x, 3=6x, 4=11x -#define hysteresis_Offset 0x04 // Hysteresis value for ADC measurements -#define loopDuration_Offset 0x05 // duration of time between ADC checks and other loop functions +#define status_Offset 0x00 // Status register +#define senseInt_Offset 0x01 // Integer of sense threshold in millivolts +#define compInt_Offset 0x02 // Integer of comparator threshold in millivolts +#define gainFactor_Offset 0x03 // Gain adjustment factor. 0=3x, 1=3.5x, 2=4.33x, 3=6x, 4=11x +#define hysteresis_Offset 0x04 // Hysteresis value for ADC measurements +#define loopDuration_Offset 0x05 // duration of time between ADC checks and other loop functions #define logicLevel_Offset 0x06 #define piezoDetect_Offset 0x07 -#define triggerDuration_Offset 0x08 // duration of the Z-axis pulse sent, in ms +#define triggerDuration_Offset 0x08 // duration of the Z-axis pulse sent, in ms #define debugEnable_Offset 0x09 -#define voltMeterLong_Offset 0x0a // For fine-tuning the input volt master +#define voltMeterLong_Offset 0x0a // For fine-tuning the input volt master #define versionRegister_Offset 0x0b #define configRegister_Offset 0x0c #define identRegister_Offset 0x0d /*-------------------------Variables------------------------*/ -#define regMapSize 14 +#define regMapSize 14 #define maxBytes 2 #define longBytes 4 byte regMap[regMapSize]; @@ -26,16 +26,16 @@ byte regMapTemp[regMapSize]; byte cmdRcvd[maxBytes]; byte longRcvd[longBytes]; - /*------------------------------------------------*/ class pP_i2c { - public: - pP_i2c(uint8_t address=pP_i2c_address); - void init(); - void i2cInput(int bytesReceived); - private: - char _i2cResponse; +public: + pP_i2c(uint8_t address = pP_i2c_address); + void init(); + void i2cInput(int bytesReceived); + +private: + char _i2cResponse; }; #endif // I2C_INPUT diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_pins.h b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_pins.h index bd103cb..4640d5d 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_pins.h +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_pins.h @@ -1,6 +1,6 @@ /* pyr0-piezo pins configuration file -Default pins (based on Rev.2.x.xPCB layout) +Default pins (based on Rev.2.x.xPCB layout) * PD2 INT0 (Piezo In 'D2') * D7 PCINT23 (Trigger OUT 'D7') @@ -16,18 +16,18 @@ Default pins (based on Rev.2.x.xPCB layout) */ // Analog Pin Assignments -#define V_FOLLOW_PIN A0 // Sense pin to check Voltage Follower stage -#define VCOMP_SENSE_PIN A1 // Sense pin to check comparator stage voltage +#define V_FOLLOW_PIN A0 // Sense pin to check Voltage Follower stage +#define VCOMP_SENSE_PIN A1 // Sense pin to check comparator stage voltage // Digital Pin Assignments -#define TRG_OUT 7 // LED and Z-Min trigger output connected to digital pin 7 +#define TRG_OUT 7 // LED and Z-Min trigger output connected to digital pin 7 //#define TRG_OUT 13 // For testing on Atmega328/2560, Output is moved to onboard LED pin -#define Z_TRG 2 // the piezo is connected to INT0 / digital pin 2 -#define ERR_LED 4 // LED will blink if optimal voltage range cannot be achieved -#define GADJ_R0 20 // Auto-adjust ladder pin assignments -#define GADJ_R1 21 // " -#define GADJ_R2 5 // " -#define GADJ_R3 6 // " -#define V_FOL_PWM 3 // PWM analog output pin for voltage follower adjustment -#define VCOMP_PWM 9 // PWM analog output pin for comparator adjustment -#define PZDET_PIN 16 // Digital input pin for detecting piezo connection \ No newline at end of file +#define Z_TRG 2 // the piezo is connected to INT0 / digital pin 2 +#define ERR_LED 4 // LED will blink if optimal voltage range cannot be achieved +#define GADJ_R0 20 // Auto-adjust ladder pin assignments +#define GADJ_R1 21 // " +#define GADJ_R2 5 // " +#define GADJ_R3 6 // " +#define V_FOL_PWM 3 // PWM analog output pin for voltage follower adjustment +#define VCOMP_PWM 9 // PWM analog output pin for comparator adjustment +#define PZDET_PIN 16 // Digital input pin for detecting piezo connection \ No newline at end of file diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_serial.h b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_serial.h index 9f6b098..62d4b0f 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_serial.h +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_serial.h @@ -1,7 +1,7 @@ #include "pP_cmd.h" +#include "pP_volatile.h" -void parseData() -{ +void parseData() { // split the data into its parts @@ -15,45 +15,36 @@ void parseData() } /*------------------------------------------------*/ -void identifyMarkers() -{ +void identifyMarkers() { char x = Serial.read(); #ifdef I2C_INPUT char y = Wire.read(); #endif // I2C_INPUT - if (x == '\n' || x == '\r') - { + if (x == '\n' || x == '\r') { serialIncoming = true; inputBuffer[bytesRecvd] = 0; parseData(); bytesRecvd = 0; - } - else - { + } else { inputBuffer[bytesRecvd] = x; bytesRecvd++; - if (bytesRecvd == buffSize) - { + if (bytesRecvd == buffSize) { bytesRecvd = buffSize - 1; } } #ifdef I2C_INPUT - if (y == '\n' || y == '\r') - { + if (y == '\n' || y == '\r') { serialIncoming = true; inputBuffer[bytesRecvd] = 0; parseData(); bytesRecvd = 0; - } - else - { + } else { inputBuffer[bytesRecvd] = y; bytesRecvd++; - if (bytesRecvd == buffSize) - { + if (bytesRecvd == buffSize) { bytesRecvd = buffSize - 1; } } @@ -62,12 +53,10 @@ void identifyMarkers() /*------------------------------------------------*/ -void serialPrintConfig() -{ +void serialPrintConfig() { Serial.print("GAIN_F "); Serial.print(GAIN_FACTOR); - switch (GAIN_FACTOR) - { + switch (GAIN_FACTOR) { case 0: Serial.println(" 3x"); break; @@ -116,8 +105,7 @@ void serialPrintConfig() Serial.println(PP_VERSION); } -void serialPrintState() -{ +void serialPrintState() { Serial.print("{"); Serial.print("\"Vcc\":"); @@ -147,64 +135,36 @@ void serialPrintState() Serial.println("}"); } -void updateParams() -{ +void updateParams() { serialIncoming = false; - if (strcmp(serialMessageIn, "GAIN_F") == 0) - { + if (strcmp(serialMessageIn, "GAIN_F") == 0) { updateGainFactor(serialLong); - } - else if (strcmp(serialMessageIn, "VFOL") == 0) - { + } else if (strcmp(serialMessageIn, "VFOL") == 0) { updateVFol(serialLong); - } - else if (strcmp(serialMessageIn, "VCOMP") == 0) - { + } else if (strcmp(serialMessageIn, "VCOMP") == 0) { updateVComp(serialLong); - } - else if (strcmp(serialMessageIn, "LOOP_D") == 0) - { + } else if (strcmp(serialMessageIn, "LOOP_D") == 0) { updateLoopDuration(serialLong); - } - else if (strcmp(serialMessageIn, "TRG_D") == 0) - { + } else if (strcmp(serialMessageIn, "TRG_D") == 0) { updateTrigDuration(serialLong); - } - else if (strcmp(serialMessageIn, "HYST") == 0) - { + } else if (strcmp(serialMessageIn, "HYST") == 0) { updateHysteresis(serialLong); - } - else if (strcmp(serialMessageIn, "LOGIC") == 0) - { + } else if (strcmp(serialMessageIn, "LOGIC") == 0) { updateLogic(serialLong); - } - else if (strcmp(serialMessageIn, "PZDET") == 0) - { + } else if (strcmp(serialMessageIn, "PZDET") == 0) { updatePzDet(serialLong); - } - else if (strcmp(serialMessageIn, "CONST") == 0) - { + } else if (strcmp(serialMessageIn, "CONST") == 0) { updateConstant(serialLong); - } - else if (strcmp(serialMessageIn, "DEBUG") == 0) - { + } else if (strcmp(serialMessageIn, "DEBUG") == 0) { updateDebug(serialLong); - } - else if (strcmp(serialMessageIn, "CONFIG") == 0) - { + } else if (strcmp(serialMessageIn, "CONFIG") == 0) { serialPrintConfig(); - } - else if (strcmp(serialMessageIn, "ERASE") == 0) - { + } else if (strcmp(serialMessageIn, "ERASE") == 0) { eraseEEPROM(); serialPrintConfig(); - } - else if (strcmp(serialMessageIn, "STATE") == 0) - { + } else if (strcmp(serialMessageIn, "STATE") == 0) { serialPrintState(); - } - else if (strcmp(serialMessageIn, "HELP") == 0) - { + } else if (strcmp(serialMessageIn, "HELP") == 0) { #if defined(ARDUINO_AVR_ATmega328PB) Serial.println("To change gain factor: GAIN_F [integer for gain state - see note*]"); Serial.println("To change voltage follower voltage (low threshold): VFOL [float value]"); @@ -235,11 +195,9 @@ void updateParams() parseData(); } -void serialInput() -{ +void serialInput() { // receive data from Serial and save it into inputBuffer - if (Serial.available() > 0) - { + if (Serial.available() > 0) { // the order of these IF clauses is significant identifyMarkers(); diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_volatile.cpp b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_volatile.cpp index c7ab7b1..cfd90ba 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_volatile.cpp +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_volatile.cpp @@ -3,14 +3,14 @@ #include "stdint.h" // these variables will change on their own. Do not edit ANYTHING below this line -volatile int sensorHReading = 0; // variable to store the value read from the sensor pin -volatile int ADJ_FOLLOW = 0; // Variable for Follower adjustment -volatile int ADJ_COMP = 0; // Variable for Comparator adjustment +volatile int sensorHReading = 0; // variable to store the value read from the sensor pin +volatile int ADJ_FOLLOW = 0; // Variable for Follower adjustment +volatile int ADJ_COMP = 0; // Variable for Comparator adjustment volatile int ERR_STATE = 0; volatile int PZ_STATE = 0; -int Vin = 5000; // input reference voltage in millivolts (multiply V by 1000) -int VOld = 5000; // Variable to store previous cycle's Vin +int Vin = 5000; // input reference voltage in millivolts (multiply V by 1000) +int VOld = 5000; // Variable to store previous cycle's Vin int VLast = 0; // Convert threshold values based on the input voltage @@ -29,7 +29,7 @@ int VFol = 0; // Error blink parameters int BlinkState = 0; -int BlinkCount = (InitCount * 2) + 1; // Multiply Blink count by 2 to handle toggle state, add one extra to make sure light is on after +int BlinkCount = (InitCount * 2) + 1; // Multiply Blink count by 2 to handle toggle state, add one extra to make sure light is on after // Serial Input Parsing Variables char inputBuffer[buffSize]; diff --git a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_volatile.h b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_volatile.h index 8d2d9ad..c1659cf 100644 --- a/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_volatile.h +++ b/firmware/AVR-Source/Pyr0_Piezo_Sensor_v2.x.x/src/pP_volatile.h @@ -5,14 +5,14 @@ #include "stdint.h" // these variables will change on their own. Do not edit ANYTHING below this line -extern volatile int sensorHReading; // variable to store the value read from the sensor pin -extern volatile int ADJ_FOLLOW; // Variable for Follower adjustment -extern volatile int ADJ_COMP; // Variable for Comparator adjustment +extern volatile int sensorHReading; // variable to store the value read from the sensor pin +extern volatile int ADJ_FOLLOW; // Variable for Follower adjustment +extern volatile int ADJ_COMP; // Variable for Comparator adjustment extern volatile int ERR_STATE; extern volatile int PZ_STATE; -extern int Vin; // input reference voltage in millivolts (multiply V by 1000) -extern int VOld; // Variable to store previous cycle's Vin +extern int Vin; // input reference voltage in millivolts (multiply V by 1000) +extern int VOld; // Variable to store previous cycle's Vin extern int VLast; // Convert threshold values based on the input voltage @@ -31,7 +31,7 @@ extern int VFol; // Error blink parameters extern int BlinkState; -extern int BlinkCount; // Multiply Blink count by 2 to handle toggle state, add one extra to make sure light is on after +extern int BlinkCount; // Multiply Blink count by 2 to handle toggle state, add one extra to make sure light is on after // Serial Input Parsing Variables #define buffSize 40 @@ -48,4 +48,4 @@ extern long serialLong; // Task scheduler instances extern LightChrono mainLoop; -#endif //PP_VOLATILE_H \ No newline at end of file +#endif // PP_VOLATILE_H \ No newline at end of file