358a18d9dc33346357d3a84a39271af2678c67e1
[fw/openalt] / adc / adc.c
1 #include "FreeRTOS.h"
2
3 #include "adc.h"
4
5 //
6 //
7 //
8 int adcRead0_3 (void)
9 {
10   AD0_CR |= AD_CR_START_NOW;
11
12   while (!(AD0_DR3 & AD_DR_DONE))
13     ;
14
15   return ((AD0_DR3 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
16 }
17
18 //
19 //  Assumes PCLK == 48Mhz
20 //
21 void adcInit (void)
22 {
23   SCB_PCONP |= SCB_PCONP_PCAD0;
24
25   PCB_PINSEL1 |= PCB_PINSEL1_P030_AD03;
26
27   AD0_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3;
28 }