Merge pull request #58 from klcjr89/master
Finish implementing digitalWriteFast to save MCU cycles.
This commit is contained in:
commit
98c2f0ff8d
2 changed files with 22 additions and 14 deletions
|
|
@ -119,10 +119,10 @@ void setup() {
|
||||||
pinMode(GADJ_R1, 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_R2, INPUT); // declare input to set high impedance
|
||||||
pinMode(GADJ_R3, INPUT); // declare input to set high impedance
|
pinMode(GADJ_R3, INPUT); // declare input to set high impedance
|
||||||
Serial.begin(9600);
|
|
||||||
|
|
||||||
attachInterrupt(digitalPinToInterrupt(Z_TRG), pulse, FALLING);
|
attachInterrupt(digitalPinToInterrupt(Z_TRG), pulse, FALLING);
|
||||||
|
|
||||||
|
Serial.begin(9600);
|
||||||
Serial.println("Initializing Pyr0-Piezo Sensor...");
|
Serial.println("Initializing Pyr0-Piezo Sensor...");
|
||||||
|
|
||||||
restoreConfig();
|
restoreConfig();
|
||||||
|
|
@ -138,8 +138,8 @@ void loop() {
|
||||||
// Blink LED's on init
|
// Blink LED's on init
|
||||||
if (BlinkCount > 0) {
|
if (BlinkCount > 0) {
|
||||||
BlinkState = !BlinkState;
|
BlinkState = !BlinkState;
|
||||||
digitalWrite(ERR_LED, BlinkState);
|
digitalWriteFast(ERR_LED, BlinkState);
|
||||||
digitalWrite(TRG_OUT, BlinkState);
|
digitalWriteFast(TRG_OUT, BlinkState);
|
||||||
--BlinkCount;
|
--BlinkCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -156,8 +156,8 @@ void loop() {
|
||||||
|
|
||||||
// Check voltage of first and second stages and compare against thresholds
|
// Check voltage of first and second stages and compare against thresholds
|
||||||
readVin();
|
readVin();
|
||||||
VComp = analogRead(VCOMP_SENSE_PIN);
|
VComp = analogReadFast(VCOMP_SENSE_PIN);
|
||||||
VFol = analogRead(V_FOLLOW_PIN);
|
VFol = analogReadFast(V_FOLLOW_PIN);
|
||||||
|
|
||||||
VLast = VOld - Vin;
|
VLast = VOld - Vin;
|
||||||
if (VLast > Hyst || VLast < -Hyst) {
|
if (VLast > Hyst || VLast < -Hyst) {
|
||||||
|
|
@ -174,8 +174,8 @@ void loop() {
|
||||||
// Blink LED's on init
|
// Blink LED's on init
|
||||||
if (BlinkCount > 0) {
|
if (BlinkCount > 0) {
|
||||||
BlinkState = !BlinkState;
|
BlinkState = !BlinkState;
|
||||||
digitalWrite(ERR_LED, BlinkState);
|
digitalWriteFast(ERR_LED, BlinkState);
|
||||||
digitalWrite(TRG_OUT, BlinkState);
|
digitalWriteFast(TRG_OUT, BlinkState);
|
||||||
--BlinkCount;
|
--BlinkCount;
|
||||||
} else {
|
} else {
|
||||||
// Check for error state
|
// Check for error state
|
||||||
|
|
@ -187,7 +187,7 @@ void loop() {
|
||||||
serialPrintState();
|
serialPrintState();
|
||||||
}
|
}
|
||||||
// Sets trigger output state to false after completing loop
|
// Sets trigger output state to false after completing loop
|
||||||
//digitalWrite(TRG_OUT, HIGH);
|
//digitalWriteFast(TRG_OUT, HIGH);
|
||||||
sensorHReading = 0;
|
sensorHReading = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,14 @@ void digitalWriteFast(uint8_t pin, uint8_t x) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int inline analogReadFast(byte ADCpin)
|
||||||
|
{ byte ADCSRAoriginal = ADCSRA;
|
||||||
|
ADCSRA = (ADCSRA & B11111000) | 4;
|
||||||
|
int adc = analogRead(ADCpin);
|
||||||
|
ADCSRA = ADCSRAoriginal;
|
||||||
|
return adc;
|
||||||
|
}
|
||||||
|
|
||||||
/*------------------------------------------------*/
|
/*------------------------------------------------*/
|
||||||
|
|
||||||
void pulse() {
|
void pulse() {
|
||||||
|
|
@ -120,25 +128,25 @@ void adjustGain() {
|
||||||
}
|
}
|
||||||
else if (GAIN_FACTOR > 0) {
|
else if (GAIN_FACTOR > 0) {
|
||||||
pinMode(GADJ_R3, OUTPUT);
|
pinMode(GADJ_R3, OUTPUT);
|
||||||
digitalWrite(GADJ_R3, LOW);
|
digitalWriteFast(GADJ_R3, LOW);
|
||||||
pinMode(GADJ_R2, INPUT);
|
pinMode(GADJ_R2, INPUT);
|
||||||
pinMode(GADJ_R1, INPUT);
|
pinMode(GADJ_R1, INPUT);
|
||||||
pinMode(GADJ_R0, INPUT);
|
pinMode(GADJ_R0, INPUT);
|
||||||
}
|
}
|
||||||
else if (GAIN_FACTOR > 1) {
|
else if (GAIN_FACTOR > 1) {
|
||||||
pinMode(GADJ_R2, OUTPUT);
|
pinMode(GADJ_R2, OUTPUT);
|
||||||
digitalWrite(GADJ_R2, LOW);
|
digitalWriteFast(GADJ_R2, LOW);
|
||||||
pinMode(GADJ_R1, INPUT);
|
pinMode(GADJ_R1, INPUT);
|
||||||
pinMode(GADJ_R0, INPUT);
|
pinMode(GADJ_R0, INPUT);
|
||||||
}
|
}
|
||||||
else if (GAIN_FACTOR > 2) {
|
else if (GAIN_FACTOR > 2) {
|
||||||
pinMode(GADJ_R1, OUTPUT);
|
pinMode(GADJ_R1, OUTPUT);
|
||||||
digitalWrite(GADJ_R1, LOW);
|
digitalWriteFast(GADJ_R1, LOW);
|
||||||
pinMode(GADJ_R0, INPUT);
|
pinMode(GADJ_R0, INPUT);
|
||||||
}
|
}
|
||||||
else if (GAIN_FACTOR > 3) {
|
else if (GAIN_FACTOR > 3) {
|
||||||
pinMode(GADJ_R0, OUTPUT);
|
pinMode(GADJ_R0, OUTPUT);
|
||||||
digitalWrite(GADJ_R0, LOW);
|
digitalWriteFast(GADJ_R0, LOW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -146,11 +154,11 @@ void adjustGain() {
|
||||||
|
|
||||||
void checkError () {
|
void checkError () {
|
||||||
if (ERR_STATE == 1) {
|
if (ERR_STATE == 1) {
|
||||||
digitalWrite(ERR_LED, BlinkState);
|
digitalWriteFast(ERR_LED, BlinkState);
|
||||||
BlinkState = !BlinkState;
|
BlinkState = !BlinkState;
|
||||||
}
|
}
|
||||||
else if (ERR_STATE == 0) {
|
else if (ERR_STATE == 0) {
|
||||||
BlinkState = LOW;
|
BlinkState = LOW;
|
||||||
digitalWrite(ERR_LED, BlinkState);
|
digitalWriteFast(ERR_LED, BlinkState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue