21d8572b4252efa3e97eb8237ec6a73c44ac6e2f
[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_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3;
11   AD0_CR |= AD_CR_START_NOW;
12
13   while (!(AD0_DR3 & AD_DR_DONE))
14     ;
15
16   return ((AD0_DR3 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
17 }
18
19 //
20 //  Assumes PCLK == 48Mhz
21 //
22 void adcInit (void)
23 {
24   SCB_PCONP |= SCB_PCONP_PCAD0;
25
26   PCB_PINSEL1 |= PCB_PINSEL1_P030_AD03;
27
28   AD0_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3;
29 }