Hiroshi Yamaguchi / SCP1000

Dependents:   SCP1000Example 0sample_SCP1000_USB SCP1000_Fastsensing

Committer:
yamaguch
Date:
Wed Feb 02 08:00:23 2011 +0000
Revision:
0:23fab9b42ad4
Child:
1:0bc094c5d1b9
0.9

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yamaguch 0:23fab9b42ad4 1 #include "mbed.h"
yamaguch 0:23fab9b42ad4 2 #include "SCP1000.h"
yamaguch 0:23fab9b42ad4 3
yamaguch 0:23fab9b42ad4 4 DigitalIn sw(p9);
yamaguch 0:23fab9b42ad4 5 DigitalOut leds[4] = {LED1, LED2, LED3, LED4};
yamaguch 0:23fab9b42ad4 6 SCP1000 scp1000(p11, p12, p13, p10);
yamaguch 0:23fab9b42ad4 7 LocalFileSystem local("local");
yamaguch 0:23fab9b42ad4 8
yamaguch 0:23fab9b42ad4 9 void printMeasurements(char *title, int n = 10) {
yamaguch 0:23fab9b42ad4 10 FILE *fp = fopen("/local/scp1000.txt", "a");
yamaguch 0:23fab9b42ad4 11 fprintf(fp, "%s\n", title);
yamaguch 0:23fab9b42ad4 12
yamaguch 0:23fab9b42ad4 13 for (int i = 0; !sw && i < n; i++) {
yamaguch 0:23fab9b42ad4 14 while (!scp1000.isReady())
yamaguch 0:23fab9b42ad4 15 ;
yamaguch 0:23fab9b42ad4 16 time_t seconds = time(NULL);
yamaguch 0:23fab9b42ad4 17 char buf[16];
yamaguch 0:23fab9b42ad4 18 strftime(buf, sizeof(buf), "%X", localtime(&seconds));
yamaguch 0:23fab9b42ad4 19 fprintf(fp, "%s %3.2f, %3.3f\n", buf, scp1000.readTemperature(), scp1000.readPressure());
yamaguch 0:23fab9b42ad4 20 leds[i % 4] = (i % 8) < 4;
yamaguch 0:23fab9b42ad4 21 if (i % 100 == 99)
yamaguch 0:23fab9b42ad4 22 freopen(NULL, "a", fp);
yamaguch 0:23fab9b42ad4 23 }
yamaguch 0:23fab9b42ad4 24
yamaguch 0:23fab9b42ad4 25 fclose(fp);
yamaguch 0:23fab9b42ad4 26 wait(1.0);
yamaguch 0:23fab9b42ad4 27 }
yamaguch 0:23fab9b42ad4 28
yamaguch 0:23fab9b42ad4 29 int main() {
yamaguch 0:23fab9b42ad4 30 char buf[32];
yamaguch 0:23fab9b42ad4 31
yamaguch 0:23fab9b42ad4 32 FILE *fp = fopen("/local/scp1000.txt", "a");
yamaguch 0:23fab9b42ad4 33 if (fp == NULL) exit(-1);
yamaguch 0:23fab9b42ad4 34
yamaguch 0:23fab9b42ad4 35 time_t seconds = time(NULL);
yamaguch 0:23fab9b42ad4 36 strftime(buf, sizeof(buf), "%x %X", localtime(&seconds));
yamaguch 0:23fab9b42ad4 37 fprintf(fp, "Time: %s\n", buf);
yamaguch 0:23fab9b42ad4 38 fprintf(fp, "SCP1000 ASIC revision number = %d\n", scp1000.revision());
yamaguch 0:23fab9b42ad4 39 bool result = scp1000.performSelfTest();
yamaguch 0:23fab9b42ad4 40 fprintf(fp, "SCP1000 self test: %s\n", result ? "PASSED" : "FAILED");
yamaguch 0:23fab9b42ad4 41 fprintf(fp, "SCP1000 reset\n");
yamaguch 0:23fab9b42ad4 42 scp1000.reset();
yamaguch 0:23fab9b42ad4 43 fclose(fp);
yamaguch 0:23fab9b42ad4 44
yamaguch 0:23fab9b42ad4 45 scp1000.setOperationMode(HIGH_SPEED_MODE);
yamaguch 0:23fab9b42ad4 46 printMeasurements("SCP1000 High Speed Mode - 9Hz", 1000);
yamaguch 0:23fab9b42ad4 47
yamaguch 0:23fab9b42ad4 48 scp1000.setOperationMode(HIGH_RESOLUTION_MODE);
yamaguch 0:23fab9b42ad4 49 printMeasurements("SCP1000 High Resolution Mode - 1.8Hz", 1000);
yamaguch 0:23fab9b42ad4 50
yamaguch 0:23fab9b42ad4 51 scp1000.setOperationMode(ULTRA_LOW_POWER_MODE);
yamaguch 0:23fab9b42ad4 52 printMeasurements("SCP1000 Ultra Low Power Mode - 1Hz", 1000);
yamaguch 0:23fab9b42ad4 53 }