blob: 620f80fe902e0a55a76f31b00d2e72759248cff0 (
plain)
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
38
39
40
41
42
|
// Function to initialise ADC of AVR
//
// Calling Sequence
// AVRSetupADC(uint8 prescalar, uint8 adc_ref)
//
// Parameters
// prescalar: prescalar to be used for generating ADC clock (0-7)
// adc_ref : reference voltage to be used for ADC conversion
// 0 -> Voltage on VREF pin
// 1 -> Voltage on AVCC pin
// 2 -> Internal 2.56 reference voltage
//
// Description
// This function initialises ADc of AVR with given parameters. 'prescalar' is
// needed for deciding ADC clock. ADC clock should be between 50KHz and 200KHz
// and it given as (MCU clock/2^prescalar). Select appropriate prescalar depending
// on MCU clock. 'adc_ref' selects one of the available reference voltage sources
// available
// Examples
// AVRADCSetup(128,0)
//
// Authors
// Siddhesh Wani
//
#include "AVRPeripheralADC.h"
uint8 u8AVRADCSetups(uint8 prescalar, uint8 adc_ref)
{
/*Set the prescalar value*/
ADCSRA |= (prescalar & 0x07);
/*Set the adc reference voltage*/
ADMUX |= ((adc_ref & 0x03) << 6);
/*Enable ADC hardware. Set ADEN bit*/
ADCSRA |= (1<<7);
return 0;
}
|