LCA 2008 Z-axis accelerometer demo
[fw/openalt] / adc / adc.c
index 21d8572b4252efa3e97eb8237ec6a73c44ac6e2f..cc7158eff2fa0e684b6c2a926f383ba3ea7dbcfd 100644 (file)
--- a/adc/adc.c
+++ b/adc/adc.c
@@ -7,13 +7,14 @@
 //
 int adcRead0_3 (void)
 {
-  AD0_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3;
-  AD0_CR |= AD_CR_START_NOW;
+//  AD0_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3;
+//  AD0_CR |= AD_CR_START_NOW;
 
-  while (!(AD0_DR3 & AD_DR_DONE))
-    ;
+//  while (!(AD0_DR3 & AD_DR_DONE))
+//    ;
 
-  return ((AD0_DR3 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
+//  return ((AD0_DR3 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
+    return (0);
 }
 
 //
@@ -21,9 +22,53 @@ int adcRead0_3 (void)
 //
 void adcInit (void)
 {
-  SCB_PCONP |= SCB_PCONP_PCAD0;
+//  SCB_PCONP |= SCB_PCONP_PCAD0;
+  SCB_PCONP |= SCB_PCONP_PCAD1;
 
-  PCB_PINSEL1 |= PCB_PINSEL1_P030_AD03;
+//  PCB_PINSEL1 |= PCB_PINSEL1_P030_AD03;
 
-  AD0_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3;
+  PCB_PINSEL0 |= PCB_PINSEL0_P012_AD13;
+  PCB_PINSEL0 |= PCB_PINSEL0_P013_AD14;
+  PCB_PINSEL1 |= PCB_PINSEL1_P021_AD16;
+
+}
+
+void adcStartXYZ (void)
+{
+//  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;
+//  AD1_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL3 | AD_CR_BURST;
+  AD1_CR = AD_CR_CLKS10 | AD_CR_PDN | ((11 - 1) << AD_CR_CLKDIVSHIFT) | AD_CR_SEL6 | AD_CR_BURST;
+  AD1_CR |= AD_CR_START_NOW;
+
+// wait for conversion to complete
+//  while (!(AD1_DR3 & AD_DR_DONE))
+//    ;
+
+}
+
+//
+//  Read and return X accelerometer value
+//
+int adcReadX (void)
+{
+//  while (!(AD1_DR3 & AD_DR_DONE)) ;
+  return ((AD1_DR3 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
+}
+
+//
+//  Read and return Y accelerometer value
+//
+int adcReadY (void)
+{
+//  while (!(AD1_DR4 & AD_DR_DONE)) ;
+  return ((AD1_DR4 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
+}
+
+//
+//  Read and return Z accelerometer value
+//
+int adcReadZ (void)
+{
+  while (!(AD1_DR6 & AD_DR_DONE)) ;
+  return ((AD1_DR6 & AD_DR_RESULTMASK) >> AD_DR_RESULTSHIFT);
 }