Code change implements analogReadFast, which reduces the read time of an anolog pin from 112 µS down to 21 µS.
This commit is contained in:
parent
97296db236
commit
eb052133a3
2 changed files with 10 additions and 2 deletions
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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() {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue