X-Git-Url: https://git.gag.com/?p=fw%2Fopenalt;a=blobdiff_plain;f=adc%2Fadc.c;h=cc7158eff2fa0e684b6c2a926f383ba3ea7dbcfd;hp=21d8572b4252efa3e97eb8237ec6a73c44ac6e2f;hb=429c02df13c3f0aeb8cbd6bd17e9e01ed3ab8e9f;hpb=221783226c8f457e094a04c5f4da9e2e3e7e8b42 diff --git a/adc/adc.c b/adc/adc.c index 21d8572..cc7158e 100644 --- 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); }