Hiroshi Yamaguchi / SCP1000

Dependents:   SCP1000Example 0sample_SCP1000_USB SCP1000_Fastsensing

Committer:
yamaguch
Date:
Tue Feb 08 07:26:56 2011 +0000
Revision:
4:112b70cfd265
0.94

Who changed what in which revision?

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