marcel van de Kamp
/
ADS8320V3_example
program for external ADC ADS8320 Based on the program for the SCP1000. Still figuring out timing issues
main.cpp
- Committer:
- marcelvandekamp
- Date:
- 2011-02-18
- Revision:
- 0:918a2b064be6
File content as of revision 0:918a2b064be6:
#include "mbed.h" #include "ads8320.h" # define SAMPLENRS 7000 # define SAMPLES_SEC 161364 # define SAMPLERATE 9600 Serial pc(USBTX, USBRX); ads8320 adsx8320(p5,p6,p7,p8); Serial lcd (p28, p27); InterruptIn Potmeter(p23); DigitalOut led(LED1); void clear(void); void Measure(void); unsigned int samples[SAMPLENRS]; unsigned int average; unsigned int sum; Timer t; int main() { Potmeter.rise(&Measure); //if P5 high, then measure while (1) { led = !led; wait(0.25); pc.printf("say something"); } } void Measure() { __disable_irq(); unsigned int pause = (SAMPLES_SEC/SAMPLERATE) / SAMPLES_SEC; int c=0; clear(); lcd.baud(9600); while (1) { t.reset(); t.start(); /* for (int i=0; i < SAMPLENRS; i++) { samples[i] = adsx8320.readTemperature(); sum+= samples[i]; wait(0.0001041); //divider 0.0001355 }*/ pc.printf("waarde is: %u \n\r",adsx8320.readTemperature()); t.stop(); clear(); average = sum/SAMPLENRS; //lcd.printf("gem is %u\n\r", average); //lcd.printf("t: %f \n\r", t.read()); sum =0; wait(1); clear(); average=0; __enable_irq(); } } void clear(void) { // lcd.putc(0xFE); lcd.putc(0x01); lcd.printf(" \n\r"); lcd.printf(" \n\r"); }