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 450a8df..0b5391f 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 @@ -119,34 +119,37 @@ void calibrateAlert() { /*------------------------------------------------*/ void adjustGain() { - - if (GAIN_FACTOR == 0) { - pinMode(GADJ_R3, INPUT); - pinMode(GADJ_R2, INPUT); + switch (GAIN_FACTOR) + { + case 4: + pinMode(GADJ_R0, OUTPUT); + digitalWriteFast(GADJ_R0, LOW); + break; + case 3: + pinMode(GADJ_R1, OUTPUT); + digitalWriteFast(GADJ_R1, LOW); + pinMode(GADJ_R0, INPUT); + break; + case 2: + pinMode(GADJ_R2, OUTPUT); + digitalWriteFast(GADJ_R2, LOW); pinMode(GADJ_R1, INPUT); pinMode(GADJ_R0, INPUT); - } - else if (GAIN_FACTOR > 0) { + break; + case 1: pinMode(GADJ_R3, OUTPUT); digitalWriteFast(GADJ_R3, LOW); pinMode(GADJ_R2, INPUT); pinMode(GADJ_R1, INPUT); pinMode(GADJ_R0, INPUT); - } - else if (GAIN_FACTOR > 1) { - pinMode(GADJ_R2, OUTPUT); - digitalWriteFast(GADJ_R2, LOW); + break; + case 0: + default: + pinMode(GADJ_R3, INPUT); + pinMode(GADJ_R2, INPUT); pinMode(GADJ_R1, INPUT); pinMode(GADJ_R0, INPUT); - } - else if (GAIN_FACTOR > 2) { - pinMode(GADJ_R1, OUTPUT); - digitalWriteFast(GADJ_R1, LOW); - pinMode(GADJ_R0, INPUT); - } - else if (GAIN_FACTOR > 3) { - pinMode(GADJ_R0, OUTPUT); - digitalWriteFast(GADJ_R0, LOW); + break; } }