10 // AD0_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3;
11 // AD0_CR |= AD_CR_START_NOW;
13 // while (!(AD0_DR3 & AD_DR_DONE))
16 // return ((AD0_DR3 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
21 // Assumes PCLK == 48Mhz
25 // SCB_PCONP |= SCB_PCONP_PCAD0;
26 SCB_PCONP |= SCB_PCONP_PCAD1;
28 // PCB_PINSEL1 |= PCB_PINSEL1_P030_AD03;
30 PCB_PINSEL0 |= PCB_PINSEL0_P012_AD13;
31 PCB_PINSEL0 |= PCB_PINSEL0_P013_AD14;
32 PCB_PINSEL1 |= PCB_PINSEL1_P021_AD16;
36 void adcStartXYZ (void)
38 // AD1_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3 | AD_CR_SEL4 | AD_CR_SEL6 | AD_CR_BURST;
39 // AD1_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3 | AD_CR_BURST;
40 AD1_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL6 | AD_CR_BURST;
41 AD1_CR |= AD_CR_START_NOW;
43 // wait for conversion to complete
44 // while (!(AD1_DR3 & AD_DR_DONE))
50 // Read and return X accelerometer value
54 // while (!(AD1_DR3 & AD_DR_DONE)) ;
55 return ((AD1_DR3 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
59 // Read and return Y accelerometer value
63 // while (!(AD1_DR4 & AD_DR_DONE)) ;
64 return ((AD1_DR4 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
68 // Read and return Z accelerometer value
72 while (!(AD1_DR6 & AD_DR_DONE)) ;
73 return ((AD1_DR6 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);