LevelMeter-Display  2.0
An ultrasonic Level Meter for Stormwater Cisterns
adc.h
Go to the documentation of this file.
1 /*
2  * adc.h
3  *
4  * Created: 13.11.2012 14:05:16
5  * Author: rolo
6  */
7 
8 #include <avr/interrupt.h>
9 
10 #ifndef ADC_H_
11 #define ADC_H_
12 
13 extern volatile uint8_t adcFlags;
14 static const uint8_t ADCFLAG_NEWRESULTS=1;
15 static const uint8_t ADCFLAG_NEWAVERAGES=2;
16 volatile uint16_t channelMismatchCnt;
17 
20 typedef union
21 {
22  struct
23  {
24  uint16_t ADC_Temp;
25  uint16_t ADC_P5;
26  uint16_t ADC_Unreg;
27  uint16_t ADC_SWUnreg;
28  uint16_t ADC_P3;
29  } named;
30  uint16_t array[5];
31 } ADCData_t;
32 
33 
34 extern volatile ADCData_t ADCData;
35 extern volatile ADCData_t ADCDataAvg;
36 extern volatile ADCData_t ADCDataMin;
37 extern volatile ADCData_t ADCDataMax;
38 extern volatile ADCData_t ADCDataMinTmp;
39 extern volatile ADCData_t ADCDataMaxTmp;
40 
41 
42 static inline void ADCcli(void)
43 {
44  ADCSRA &= ~(1<<ADIE);
45 }
46 
47 static inline void ADCsei(void)
48 {
49  ADCSRA = (ADCSRA | 1<<ADIE) & ~(1<<ADIF); // Set ADIE without resetting ADIF!
50 }
51 
52 void InitADC(void);
53 
56 static inline void ADCResetMinMax(void)
57 {
58  ADCcli();
59  for (int i=4;i>=0;i--)
60  {
63  ADCDataMinTmp.array[i]=0xffff;
64  ADCDataMaxTmp.array[i]=0;
65  }
66  ADCsei();
67 }
68 
69 #endif /* ADC_H_ */
static void ADCResetMinMax(void)
Resets the Min/Max values of the Analog Values.
Definition: adc.h:56
volatile ADCData_t ADCDataMaxTmp
Maximum ADC-Values in the current Period.
Definition: adc - Kopie.c:39
void InitADC(void)
Initializes the ADC.
Definition: adc - Kopie.c:48
volatile ADCData_t ADCDataMax
Maximum ADC-Values during last average Period.
Definition: adc - Kopie.c:38
volatile ADCData_t ADCDataMin
Minimum ADC-Values during last average Period.
Definition: adc - Kopie.c:36
static const uint8_t ADCFLAG_NEWRESULTS
All Channels have been updated.
Definition: adc.h:14
Holds raw ADC Values for all Channels.
Definition: adc.h:20
volatile ADCData_t ADCDataAvg
Averaged ADC-Values.
Definition: adc - Kopie.c:35
volatile uint16_t channelMismatchCnt
Definition: adc.h:16
uint16_t array[5]
Array for access via Channel Number.
Definition: adc.h:30
volatile ADCData_t ADCDataMinTmp
Minimum ADC-Values in the current Period.
Definition: adc - Kopie.c:37
volatile uint8_t adcFlags
Definition: adc - Kopie.c:31
uint16_t ADC_P3
3.3V Supply
Definition: adc.h:28
uint16_t ADC_SWUnreg
Switched Unreg to the Sensor.
Definition: adc.h:27
uint16_t ADC_Temp
Display Temperature.
Definition: adc.h:24
volatile ADCData_t ADCData
ADC-Values for the last measurement.
Definition: adc - Kopie.c:34
uint16_t ADC_P5
5V Supply
Definition: adc.h:25
static void ADCcli(void)
Definition: adc.h:42
uint16_t ADC_Unreg
Unregulated Supply.
Definition: adc.h:26
static void ADCsei(void)
Definition: adc.h:47
static const uint8_t ADCFLAG_NEWAVERAGES
All Averages have been updated.
Definition: adc.h:15