Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: SCP1000Example 0sample_SCP1000_USB SCP1000_Fastsensing
main.cpp@2:4c2784b363ad, 2011-02-04 (annotated)
- Committer:
- yamaguch
- Date:
- Fri Feb 04 11:56:49 2011 +0000
- Revision:
- 2:4c2784b363ad
- Parent:
- 1:0bc094c5d1b9
0.92
Who changed what in which revision?
| User | Revision | Line number | New 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 | 1:0bc094c5d1b9 | 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 | 1:0bc094c5d1b9 | 21 | if (i % 100 == 99) { |
| yamaguch | 1:0bc094c5d1b9 | 22 | fclose(fp); |
| yamaguch | 1:0bc094c5d1b9 | 23 | fp = fopen("/local/scp1000.txt", "a"); |
| yamaguch | 1:0bc094c5d1b9 | 24 | } |
| yamaguch | 0:23fab9b42ad4 | 25 | } |
| yamaguch | 1:0bc094c5d1b9 | 26 | |
| yamaguch | 0:23fab9b42ad4 | 27 | fclose(fp); |
| yamaguch | 0:23fab9b42ad4 | 28 | wait(1.0); |
| yamaguch | 0:23fab9b42ad4 | 29 | } |
| yamaguch | 0:23fab9b42ad4 | 30 | |
| yamaguch | 0:23fab9b42ad4 | 31 | int main() { |
| yamaguch | 0:23fab9b42ad4 | 32 | char buf[32]; |
| yamaguch | 2:4c2784b363ad | 33 | |
| yamaguch | 2:4c2784b363ad | 34 | for (int i = 0; !sw; i = (i + 1) % 8) { |
| yamaguch | 2:4c2784b363ad | 35 | leds[i < 4 ? i : 7 - i] = 1; |
| yamaguch | 2:4c2784b363ad | 36 | wait(0.05); |
| yamaguch | 2:4c2784b363ad | 37 | leds[i < 4 ? i : 7 - i] = 0; |
| yamaguch | 1:0bc094c5d1b9 | 38 | } |
| yamaguch | 1:0bc094c5d1b9 | 39 | |
| yamaguch | 0:23fab9b42ad4 | 40 | FILE *fp = fopen("/local/scp1000.txt", "a"); |
| yamaguch | 0:23fab9b42ad4 | 41 | if (fp == NULL) exit(-1); |
| yamaguch | 1:0bc094c5d1b9 | 42 | |
| yamaguch | 0:23fab9b42ad4 | 43 | time_t seconds = time(NULL); |
| yamaguch | 0:23fab9b42ad4 | 44 | strftime(buf, sizeof(buf), "%x %X", localtime(&seconds)); |
| yamaguch | 0:23fab9b42ad4 | 45 | fprintf(fp, "Time: %s\n", buf); |
| yamaguch | 0:23fab9b42ad4 | 46 | fprintf(fp, "SCP1000 ASIC revision number = %d\n", scp1000.revision()); |
| yamaguch | 0:23fab9b42ad4 | 47 | bool result = scp1000.performSelfTest(); |
| yamaguch | 0:23fab9b42ad4 | 48 | fprintf(fp, "SCP1000 self test: %s\n", result ? "PASSED" : "FAILED"); |
| yamaguch | 0:23fab9b42ad4 | 49 | fprintf(fp, "SCP1000 reset\n"); |
| yamaguch | 0:23fab9b42ad4 | 50 | scp1000.reset(); |
| yamaguch | 0:23fab9b42ad4 | 51 | fclose(fp); |
| yamaguch | 1:0bc094c5d1b9 | 52 | |
| yamaguch | 2:4c2784b363ad | 53 | scp1000.setOperationMode(SCP1000::HIGH_SPEED_MODE); |
| yamaguch | 1:0bc094c5d1b9 | 54 | printMeasurements("SCP1000 High Speed Mode - 9Hz", 3600 * 9); |
| yamaguch | 1:0bc094c5d1b9 | 55 | |
| yamaguch | 2:4c2784b363ad | 56 | scp1000.setOperationMode(SCP1000::HIGH_RESOLUTION_MODE); |
| yamaguch | 1:0bc094c5d1b9 | 57 | printMeasurements("SCP1000 High Resolution Mode - 1.8Hz", 3600 * 9 / 5); |
| yamaguch | 1:0bc094c5d1b9 | 58 | |
| yamaguch | 2:4c2784b363ad | 59 | scp1000.setOperationMode(SCP1000::ULTRA_LOW_POWER_MODE); |
| yamaguch | 1:0bc094c5d1b9 | 60 | printMeasurements("SCP1000 Ultra Low Power Mode - 1Hz", 3600 * 10); |
| yamaguch | 0:23fab9b42ad4 | 61 | } |