Makes 100 samples on maximum sample rate and transmits it over UART

Dependencies:   mbed

Committer:
gno
Date:
Wed Jun 09 12:54:21 2010 +0000
Revision:
0:55ea5a2921b2

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gno 0:55ea5a2921b2 1 #define SAMPLE_RATE 750000
gno 0:55ea5a2921b2 2 #define LENGTH_RESULT 100
gno 0:55ea5a2921b2 3
gno 0:55ea5a2921b2 4 #include "mbed.h"
gno 0:55ea5a2921b2 5 #include "adc.h"
gno 0:55ea5a2921b2 6
gno 0:55ea5a2921b2 7 //Initialise ADC to maximum SAMPLE_RATE and cclk divide set to 1
gno 0:55ea5a2921b2 8 ADC adc(SAMPLE_RATE, 1);
gno 0:55ea5a2921b2 9
gno 0:55ea5a2921b2 10 Serial uart(USBTX, USBRX); // tx, rx
gno 0:55ea5a2921b2 11 volatile int result[LENGTH_RESULT];
gno 0:55ea5a2921b2 12
gno 0:55ea5a2921b2 13 int main() {
gno 0:55ea5a2921b2 14 // Init UART
gno 0:55ea5a2921b2 15 // uart.baud(256000);
gno 0:55ea5a2921b2 16 // uart.printf("Requested max sample rate is %u, actual max sample rate is %u.\n", SAMPLE_RATE, adc.actual_sample_rate());
gno 0:55ea5a2921b2 17
gno 0:55ea5a2921b2 18 //Set up ADC on pin 20
gno 0:55ea5a2921b2 19 adc.setup(p20,1);
gno 0:55ea5a2921b2 20 //Measure pin 20
gno 0:55ea5a2921b2 21 adc.select(p20);
gno 0:55ea5a2921b2 22
gno 0:55ea5a2921b2 23 // Vars
gno 0:55ea5a2921b2 24
gno 0:55ea5a2921b2 25 int count;
gno 0:55ea5a2921b2 26 // Program
gno 0:55ea5a2921b2 27
gno 0:55ea5a2921b2 28 // AD conversion
gno 0:55ea5a2921b2 29 for(count = 0; count < LENGTH_RESULT; count++){
gno 0:55ea5a2921b2 30 //Start ADC conversion
gno 0:55ea5a2921b2 31 adc.start();
gno 0:55ea5a2921b2 32 //Wait for it to complete
gno 0:55ea5a2921b2 33 while(!adc.done(p20));
gno 0:55ea5a2921b2 34 result[count] = adc.read(p20);
gno 0:55ea5a2921b2 35 }
gno 0:55ea5a2921b2 36 // Send over UART
gno 0:55ea5a2921b2 37 for(count = 0; count < LENGTH_RESULT; count++){
gno 0:55ea5a2921b2 38 uart.printf("%04u.\n", result[count]);
gno 0:55ea5a2921b2 39 }
gno 0:55ea5a2921b2 40 }
gno 0:55ea5a2921b2 41
gno 0:55ea5a2921b2 42
gno 0:55ea5a2921b2 43