program for external ADC ADS8320 Based on the program for the SCP1000. Still figuring out timing issues

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "ads8320.h"
00003 
00004 
00005 # define SAMPLENRS 7000
00006 # define SAMPLES_SEC 161364
00007 # define SAMPLERATE 9600
00008 
00009 Serial pc(USBTX, USBRX);
00010 ads8320 adsx8320(p5,p6,p7,p8);  
00011 Serial lcd (p28, p27);
00012 InterruptIn Potmeter(p23);
00013 DigitalOut led(LED1);
00014 
00015 void clear(void);
00016 void Measure(void);
00017 unsigned int samples[SAMPLENRS];
00018 unsigned int average;
00019 unsigned int sum;
00020 Timer t;
00021 
00022 int main() {
00023     Potmeter.rise(&Measure); //if P5 high, then measure
00024     while (1) {
00025         led = !led;
00026         wait(0.25);
00027         pc.printf("say something");
00028     }
00029 }
00030 
00031 
00032 
00033 void Measure() {
00034 __disable_irq();
00035     unsigned int pause = (SAMPLES_SEC/SAMPLERATE) / SAMPLES_SEC;
00036     int c=0;
00037     clear();
00038     lcd.baud(9600);
00039     while (1) {
00040 
00041         t.reset();
00042         t.start();
00043        /* for (int i=0; i < SAMPLENRS; i++) {
00044             samples[i] = adsx8320.readTemperature();
00045             sum+= samples[i];
00046             wait(0.0001041);  //divider 0.0001355
00047         }*/
00048         pc.printf("waarde is: %u \n\r",adsx8320.readTemperature());
00049         t.stop();
00050         clear();
00051         average = sum/SAMPLENRS;
00052         //lcd.printf("gem is %u\n\r", average);
00053         //lcd.printf("t: %f \n\r", t.read());
00054         sum =0;
00055         wait(1);
00056         clear();
00057         average=0;
00058 __enable_irq();
00059 
00060     }
00061 }
00062 
00063 void clear(void) {
00064     // lcd.putc(0xFE);
00065     lcd.putc(0x01);
00066     lcd.printf("                \n\r");
00067     lcd.printf("                \n\r");
00068 }