marcel van de Kamp
/
ADS8320V3_example
program for external ADC ADS8320 Based on the program for the SCP1000. Still figuring out timing issues
Diff: main.cpp
- Revision:
- 0:918a2b064be6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Feb 18 13:46:46 2011 +0000 @@ -0,0 +1,68 @@ +#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"); +} \ No newline at end of file