lpc824break mbed sd文件系统
Dependencies: DS1302 SDFileSystem mbed
Fork of temp_humid_time_DS1302_LM35_DHT11 by
main.cpp@1:b201895769bd, 2017-06-08 (annotated)
- Committer:
- dadangjia
- Date:
- Thu Jun 08 15:20:57 2017 +0000
- Revision:
- 1:b201895769bd
- Parent:
- 0:8f0934e41a57
lpc824break mbed sd????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Clovis | 0:8f0934e41a57 | 1 | #include "mbed.h" |
dadangjia | 1:b201895769bd | 2 | #include "DS1302.h" |
Clovis | 0:8f0934e41a57 | 3 | #include "SDFileSystem.h" |
Clovis | 0:8f0934e41a57 | 4 | |
dadangjia | 1:b201895769bd | 5 | Serial pc(P0_4,P0_0,921600); |
dadangjia | 1:b201895769bd | 6 | Ticker ticker; |
dadangjia | 1:b201895769bd | 7 | float sampleTime = 1.0; |
Clovis | 0:8f0934e41a57 | 8 | // Defines for the DS1302 timer module |
dadangjia | 1:b201895769bd | 9 | //#define INITIAL_RUN 1 |
dadangjia | 1:b201895769bd | 10 | #define LED1 P0_15 |
dadangjia | 1:b201895769bd | 11 | #define LED2 P0_16 |
dadangjia | 1:b201895769bd | 12 | #define LED3 P0_17 |
dadangjia | 1:b201895769bd | 13 | #define SCLK P0_20 |
dadangjia | 1:b201895769bd | 14 | #define IO P0_21 |
dadangjia | 1:b201895769bd | 15 | #define CE P0_22 |
Clovis | 0:8f0934e41a57 | 16 | |
dadangjia | 1:b201895769bd | 17 | SDFileSystem sd(P0_26, P0_25, P0_24, P0_15, "sd"); //MOSI, MISO, SCLK, SSEL. (SD Card) Tested on K64F, correct pins. |
dadangjia | 1:b201895769bd | 18 | DS1302 clk(SCLK, IO, CE); // ports for the DS1302 time keeper |
dadangjia | 1:b201895769bd | 19 | AnalogIn PH0(P0_6); //PH传感器 A0 |
dadangjia | 1:b201895769bd | 20 | AnalogIn AD1(P0_14); //AD采集信号 A1 |
dadangjia | 1:b201895769bd | 21 | float ad1= 0.00; |
dadangjia | 1:b201895769bd | 22 | float ph0= 0.00; |
dadangjia | 1:b201895769bd | 23 | char sd_flag; |
dadangjia | 1:b201895769bd | 24 | DigitalOut RedLed(LED1); // 工作指示灯,每秒闪灭一次 |
dadangjia | 1:b201895769bd | 25 | DigitalOut GreenLed(LED2); // SD卡读取状态寄存器 |
Clovis | 0:8f0934e41a57 | 26 | DigitalOut Blueled(LED3); // DHT11 read indication |
dadangjia | 1:b201895769bd | 27 | |
dadangjia | 1:b201895769bd | 28 | void LPC824_ticker() |
dadangjia | 1:b201895769bd | 29 | { |
dadangjia | 1:b201895769bd | 30 | RedLed=!RedLed; |
dadangjia | 1:b201895769bd | 31 | ph0 = PH0.read() * 3300; |
dadangjia | 1:b201895769bd | 32 | ad1 = AD1.read() * 3300; |
dadangjia | 1:b201895769bd | 33 | time_t seconds = clk.time(NULL); |
dadangjia | 1:b201895769bd | 34 | pc.printf("PH0:%.0f mVd,AD1:%.0f mV,%s\r\n",ph0,ad1,ctime(&seconds)); |
dadangjia | 1:b201895769bd | 35 | |
dadangjia | 1:b201895769bd | 36 | if(sd_flag) |
dadangjia | 1:b201895769bd | 37 | { |
dadangjia | 1:b201895769bd | 38 | GreenLed= 0; |
dadangjia | 1:b201895769bd | 39 | FILE *fp = fopen("/sd/LPC824date/data001.csv", "a"); |
dadangjia | 1:b201895769bd | 40 | if(fp != NULL) |
dadangjia | 1:b201895769bd | 41 | { |
dadangjia | 1:b201895769bd | 42 | fprintf(fp, "%s\t%.0f\t%.0f\n", ctime(&seconds), ph0,ad1); |
dadangjia | 1:b201895769bd | 43 | fclose(fp); |
dadangjia | 1:b201895769bd | 44 | GreenLed= 0; |
dadangjia | 1:b201895769bd | 45 | } |
dadangjia | 1:b201895769bd | 46 | else |
dadangjia | 1:b201895769bd | 47 | { |
dadangjia | 1:b201895769bd | 48 | GreenLed= 1; |
dadangjia | 1:b201895769bd | 49 | } |
dadangjia | 1:b201895769bd | 50 | } |
dadangjia | 1:b201895769bd | 51 | } |
dadangjia | 1:b201895769bd | 52 | |
dadangjia | 1:b201895769bd | 53 | void sd_init() |
dadangjia | 1:b201895769bd | 54 | { |
dadangjia | 1:b201895769bd | 55 | RedLed=1; |
dadangjia | 1:b201895769bd | 56 | mkdir("/sd/LPC824date", 0777); |
dadangjia | 1:b201895769bd | 57 | FILE *fp = fopen("/sd/LPC824date/data001.csv", "w"); |
dadangjia | 1:b201895769bd | 58 | if(fp == NULL) { |
dadangjia | 1:b201895769bd | 59 | pc.printf("Could not open file for write, Please insert your SD CARD!\n"); |
dadangjia | 1:b201895769bd | 60 | GreenLed= 1; |
dadangjia | 1:b201895769bd | 61 | sd_flag=0; |
dadangjia | 1:b201895769bd | 62 | } |
dadangjia | 1:b201895769bd | 63 | else |
dadangjia | 1:b201895769bd | 64 | { |
dadangjia | 1:b201895769bd | 65 | sd_flag = 1; |
dadangjia | 1:b201895769bd | 66 | GreenLed= 0; |
dadangjia | 1:b201895769bd | 67 | } |
dadangjia | 1:b201895769bd | 68 | } |
dadangjia | 1:b201895769bd | 69 | |
dadangjia | 1:b201895769bd | 70 | int main() { |
dadangjia | 1:b201895769bd | 71 | pc.printf("LPC824 sd-dh11-ph-ds1302 demo start\r\n"); |
dadangjia | 1:b201895769bd | 72 | #ifdef INITIAL_RUN |
dadangjia | 1:b201895769bd | 73 | clk.set_time(1494675200); //2017.5.13.11.33 |
Clovis | 0:8f0934e41a57 | 74 | #endif |
Clovis | 0:8f0934e41a57 | 75 | char storedByte = clk.recallByte(0); |
dadangjia | 1:b201895769bd | 76 | clk.storeByte(0, storedByte + 1); |
dadangjia | 1:b201895769bd | 77 | sd_init(); |
dadangjia | 1:b201895769bd | 78 | ticker.attach(&LPC824_ticker, sampleTime); |
dadangjia | 1:b201895769bd | 79 | while(1) |
dadangjia | 1:b201895769bd | 80 | { |
Clovis | 0:8f0934e41a57 | 81 | |
Clovis | 0:8f0934e41a57 | 82 | } |
dadangjia | 1:b201895769bd | 83 | } |