-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathADC.cpp
37 lines (33 loc) · 873 Bytes
/
ADC.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "ADC.h"
void ADC_Init(void)
{
ADMUX = 0b01000000; //Extern ADC Voltage Reference = VCC(5V), ADLAR = 0 -> resultado de 8 bits em ADCL
ADCSRA = 0b10000111; //habilita ADC(bit7), prescaler = 128 (bits012)
set_bit(DIDR0,0); //desabilita pino PC0 como I/0, entrada do ADC0
set_bit(DIDR0,1); //desabilita pino PC1 como I/0, entrada do ADC1
set_bit(DIDR0,2); //desabilita pino PC2 como I/0, entrada do ADC2
}
uint16_t ADC_ReadVp()
{
ADMUX &= 0xF0;
ADMUX |= vp_ch;
ADCSRA |= (1<<ADSC);
while(ADCSRA & (1<<ADSC));
return ADC;
}
uint16_t ADC_ReadIp()
{
ADMUX &= 0xF0;
ADMUX |= ip_ch;
ADCSRA |= (1<<ADSC);
while(ADCSRA & (1<<ADSC));
return ADC;
}
uint16_t ADC_ReadTp()
{
ADMUX &= 0xF0; // Change the Channel
ADMUX |= tp_ch;
ADCSRA |= (1<<ADSC); // Start the conversion
while(ADCSRA & (1<<ADSC));
return ADC;
}