|
LevelMeter-Display
2.0
An ultrasonic Level Meter for Stormwater Cisterns
|
Routines for handling the ADC. More...

Functions | |
| void | InitADC (void) |
| Initializes the ADC. More... | |
| ISR (ADC_vect) | |
| ADC Conversion Complete Interrupt. More... | |
Variables | |
| volatile ADCData_t | ADCData |
| ADC-Values for the last measurement. More... | |
| volatile ADCData_t | ADCDataAvg |
| Averaged ADC-Values. More... | |
| volatile ADCData_t | ADCDataMax |
| Maximum ADC-Values during last average Period. More... | |
| volatile ADCData_t | ADCDataMaxTmp |
| Maximum ADC-Values in the current Period. More... | |
| volatile ADCData_t | ADCDataMin |
| Minimum ADC-Values during last average Period. More... | |
| volatile ADCData_t | ADCDataMinTmp |
| Minimum ADC-Values in the current Period. More... | |
| volatile uint8_t | adcFlags |
| static uint8_t | channel |
| volatile uint16_t | channelMismatchCnt |
Routines for handling the ADC.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
| void InitADC | ( | void | ) |
Initializes the ADC.
The ADC is set to free running mode at 115.2kHz clock. This gives one result every 113us or one complete set every 564us.
References channel, and muxChannel.
| ISR | ( | ADC_vect | ) |
ADC Conversion Complete Interrupt.
Calculates the Value of the current channel and switches MUX and REF to the next channel.
The flag ADCFLAG_NEWRESULTS (all channels have been updated) will be set every 564us, ADCFLAG_NEWAVERAGES will be available every 36.1ms.
Optimization for Size (-Os): This routine takes about 37us worst case.
References ADCData, ADCDataAvg, ADCDataMaxTmp, ADCDataMinTmp, ADCFLAG_NEWAVERAGES, ADCFLAG_NEWRESULTS, adcFlags, ADCData_t::array, channel, channelMismatchCnt, LEDRedOff(), and LEDRedOn().

| volatile ADCData_t ADCDataMax |
Maximum ADC-Values during last average Period.
Referenced by ADCResetMinMax().
| volatile ADCData_t ADCDataMaxTmp |
Maximum ADC-Values in the current Period.
Referenced by ADCResetMinMax(), and ISR().
| volatile ADCData_t ADCDataMin |
Minimum ADC-Values during last average Period.
Referenced by ADCResetMinMax().
| volatile ADCData_t ADCDataMinTmp |
Minimum ADC-Values in the current Period.
Referenced by ADCResetMinMax(), and ISR().
| volatile uint8_t adcFlags |
Referenced by ISR().
1.8.15