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@0:918a2b064be6, 2011-02-18 (annotated)
- Committer:
- marcelvandekamp
- Date:
- Fri Feb 18 13:46:46 2011 +0000
- Revision:
- 0:918a2b064be6
V3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marcelvandekamp | 0:918a2b064be6 | 1 | #include "mbed.h" |
marcelvandekamp | 0:918a2b064be6 | 2 | #include "ads8320.h" |
marcelvandekamp | 0:918a2b064be6 | 3 | |
marcelvandekamp | 0:918a2b064be6 | 4 | |
marcelvandekamp | 0:918a2b064be6 | 5 | # define SAMPLENRS 7000 |
marcelvandekamp | 0:918a2b064be6 | 6 | # define SAMPLES_SEC 161364 |
marcelvandekamp | 0:918a2b064be6 | 7 | # define SAMPLERATE 9600 |
marcelvandekamp | 0:918a2b064be6 | 8 | |
marcelvandekamp | 0:918a2b064be6 | 9 | Serial pc(USBTX, USBRX); |
marcelvandekamp | 0:918a2b064be6 | 10 | ads8320 adsx8320(p5,p6,p7,p8); |
marcelvandekamp | 0:918a2b064be6 | 11 | Serial lcd (p28, p27); |
marcelvandekamp | 0:918a2b064be6 | 12 | InterruptIn Potmeter(p23); |
marcelvandekamp | 0:918a2b064be6 | 13 | DigitalOut led(LED1); |
marcelvandekamp | 0:918a2b064be6 | 14 | |
marcelvandekamp | 0:918a2b064be6 | 15 | void clear(void); |
marcelvandekamp | 0:918a2b064be6 | 16 | void Measure(void); |
marcelvandekamp | 0:918a2b064be6 | 17 | unsigned int samples[SAMPLENRS]; |
marcelvandekamp | 0:918a2b064be6 | 18 | unsigned int average; |
marcelvandekamp | 0:918a2b064be6 | 19 | unsigned int sum; |
marcelvandekamp | 0:918a2b064be6 | 20 | Timer t; |
marcelvandekamp | 0:918a2b064be6 | 21 | |
marcelvandekamp | 0:918a2b064be6 | 22 | int main() { |
marcelvandekamp | 0:918a2b064be6 | 23 | Potmeter.rise(&Measure); //if P5 high, then measure |
marcelvandekamp | 0:918a2b064be6 | 24 | while (1) { |
marcelvandekamp | 0:918a2b064be6 | 25 | led = !led; |
marcelvandekamp | 0:918a2b064be6 | 26 | wait(0.25); |
marcelvandekamp | 0:918a2b064be6 | 27 | pc.printf("say something"); |
marcelvandekamp | 0:918a2b064be6 | 28 | } |
marcelvandekamp | 0:918a2b064be6 | 29 | } |
marcelvandekamp | 0:918a2b064be6 | 30 | |
marcelvandekamp | 0:918a2b064be6 | 31 | |
marcelvandekamp | 0:918a2b064be6 | 32 | |
marcelvandekamp | 0:918a2b064be6 | 33 | void Measure() { |
marcelvandekamp | 0:918a2b064be6 | 34 | __disable_irq(); |
marcelvandekamp | 0:918a2b064be6 | 35 | unsigned int pause = (SAMPLES_SEC/SAMPLERATE) / SAMPLES_SEC; |
marcelvandekamp | 0:918a2b064be6 | 36 | int c=0; |
marcelvandekamp | 0:918a2b064be6 | 37 | clear(); |
marcelvandekamp | 0:918a2b064be6 | 38 | lcd.baud(9600); |
marcelvandekamp | 0:918a2b064be6 | 39 | while (1) { |
marcelvandekamp | 0:918a2b064be6 | 40 | |
marcelvandekamp | 0:918a2b064be6 | 41 | t.reset(); |
marcelvandekamp | 0:918a2b064be6 | 42 | t.start(); |
marcelvandekamp | 0:918a2b064be6 | 43 | /* for (int i=0; i < SAMPLENRS; i++) { |
marcelvandekamp | 0:918a2b064be6 | 44 | samples[i] = adsx8320.readTemperature(); |
marcelvandekamp | 0:918a2b064be6 | 45 | sum+= samples[i]; |
marcelvandekamp | 0:918a2b064be6 | 46 | wait(0.0001041); //divider 0.0001355 |
marcelvandekamp | 0:918a2b064be6 | 47 | }*/ |
marcelvandekamp | 0:918a2b064be6 | 48 | pc.printf("waarde is: %u \n\r",adsx8320.readTemperature()); |
marcelvandekamp | 0:918a2b064be6 | 49 | t.stop(); |
marcelvandekamp | 0:918a2b064be6 | 50 | clear(); |
marcelvandekamp | 0:918a2b064be6 | 51 | average = sum/SAMPLENRS; |
marcelvandekamp | 0:918a2b064be6 | 52 | //lcd.printf("gem is %u\n\r", average); |
marcelvandekamp | 0:918a2b064be6 | 53 | //lcd.printf("t: %f \n\r", t.read()); |
marcelvandekamp | 0:918a2b064be6 | 54 | sum =0; |
marcelvandekamp | 0:918a2b064be6 | 55 | wait(1); |
marcelvandekamp | 0:918a2b064be6 | 56 | clear(); |
marcelvandekamp | 0:918a2b064be6 | 57 | average=0; |
marcelvandekamp | 0:918a2b064be6 | 58 | __enable_irq(); |
marcelvandekamp | 0:918a2b064be6 | 59 | |
marcelvandekamp | 0:918a2b064be6 | 60 | } |
marcelvandekamp | 0:918a2b064be6 | 61 | } |
marcelvandekamp | 0:918a2b064be6 | 62 | |
marcelvandekamp | 0:918a2b064be6 | 63 | void clear(void) { |
marcelvandekamp | 0:918a2b064be6 | 64 | // lcd.putc(0xFE); |
marcelvandekamp | 0:918a2b064be6 | 65 | lcd.putc(0x01); |
marcelvandekamp | 0:918a2b064be6 | 66 | lcd.printf(" \n\r"); |
marcelvandekamp | 0:918a2b064be6 | 67 | lcd.printf(" \n\r"); |
marcelvandekamp | 0:918a2b064be6 | 68 | } |