marcel van de Kamp
/
ADS8320V3_example
program for external ADC ADS8320 Based on the program for the SCP1000. Still figuring out timing issues
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Wed Aug 24 2022 02:26:52 by 1.7.2