by Rob Toulson and Tim Wilmshurst from textbook "Fast and Effective Embedded Systems Design: Applying the ARM mbed"
Revision 0:c0fbef1ae93c, committed 2013-06-16
- Comitter:
- robt
- Date:
- Sun Jun 16 15:42:27 2013 +0000
- Commit message:
- by Rob Toulson and Tim Wilmshurst from textbook "Fast and Effective Embedded Systems Design: Applying the ARM mbed"
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Jun 16 15:42:27 2013 +0000 @@ -0,0 +1,34 @@ +/* Program Example 14.6: Explore ADC conversion times, programming control registers directly. ADC value is transferred to DAC, while an output pin is strobed to indicate conversion duration. Observe on oscilloscope + */ +//…. +//…. + +int main() { + FIO2DIR0=0xFF; // set lower bits port 2 to output + PINSEL1=0x00210000; //set bits 21-20 to 10 for analog output (mbed p18) + //and bits 17-16 to 01 to enable ADC channel 1 (AD0.1, mbed pin 16) + +//initialise the ADC. +//…. +//…. + while(1){ // infinite loop + // start A/D conversion by modifying bits in the AD0CR register + AD0CR &= (AD0CR & 0xFFFFFF00); + FIO2PIN0 |= 0x01; // OR bit 0 with 1 to set pin high + AD0CR |= (1 << ADC_channel) | (1 << 24); + // wait for it to finish by polling the ADC DONE bit + while((AD0GDR & 0x80000000) == 0) { + } + FIO2PIN0 &= ~0x01; // AND bit 0 with 0 to set pin low + + ADCdata = AD0GDR; // get the data from AD0GDR + AD0CR &= 0xF8FFFFFF; //stop ADC by setting START bits to zero + + // shift data 4 bits to right justify, and 2 more to give 10-bit ADC value + ADCdata=(ADCdata>>6)&0x03FF; //and mask + DACR=(ADCdata<<6); //could be merged with previous line, + // but separated for clarity + //delay(); //insert delay if wished + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sun Jun 16 15:42:27 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/b3110cd2dd17 \ No newline at end of file