lpc824break mbed sd文件系统

Dependencies:   DS1302 SDFileSystem mbed

Fork of temp_humid_time_DS1302_LM35_DHT11 by Clovis Fritzen

Revision:
1:b201895769bd
Parent:
0:8f0934e41a57
--- a/main.cpp	Fri Jul 04 08:08:38 2014 +0000
+++ b/main.cpp	Thu Jun 08 15:20:57 2017 +0000
@@ -1,88 +1,83 @@
 #include "mbed.h"
+#include "DS1302.h"
 #include "SDFileSystem.h"
-#include "DHT.h"
-#include "DS1302.h"
 
+Serial pc(P0_4,P0_0,921600);
+Ticker ticker; 
+float sampleTime = 1.0;
 // Defines for the DS1302 timer module
-#define SCLK    PTC1
-#define IO      PTB19
-#define CE      PTB18
+//#define INITIAL_RUN 1
+#define LED1    P0_15
+#define LED2    P0_16
+#define LED3    P0_17
+#define SCLK    P0_20
+#define IO      P0_21
+#define CE      P0_22
 
-SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); //MOSI, MISO, SCLK, SSEL. (SD Card) Tested on K64F, correct pins.
-AnalogIn LM35(PTB2);
-AnalogIn LDR(PTB3);
-int count=0;
-float ldrcalc= 0.00;
-DigitalOut RedLed(LED1); // Error indication
-DigitalOut GreenLed(LED2); // LM35 read indication
+SDFileSystem sd(P0_26, P0_25, P0_24, P0_15, "sd"); //MOSI, MISO, SCLK, SSEL. (SD Card) Tested on K64F, correct pins.
+DS1302 clk(SCLK, IO, CE); // ports for the DS1302 time keeper
+AnalogIn PH0(P0_6);  //PH传感器 A0
+AnalogIn AD1(P0_14);  //AD采集信号 A1
+float ad1= 0.00;
+float ph0= 0.00;
+char sd_flag;
+DigitalOut RedLed(LED1); // 工作指示灯,每秒闪灭一次
+DigitalOut GreenLed(LED2); // SD卡读取状态寄存器
 DigitalOut Blueled(LED3); // DHT11 read indication
-DHT sensor(PTB20,DHT11); // Use the DHT11 sensor, on pin 
-DS1302 clk(SCLK, IO, PTB18); // ports for the DS1302 time keeper
- 
-int main() {
-    // the 6 lines below are for the time keeper chip
-    #ifdef INITIAL_RUN
-    clk.set_time(1403949720);
+
+void LPC824_ticker()
+{
+    RedLed=!RedLed;
+    ph0 = PH0.read() * 3300; 
+    ad1 = AD1.read() * 3300; 
+    time_t seconds = clk.time(NULL);
+    pc.printf("PH0:%.0f mVd,AD1:%.0f mV,%s\r\n",ph0,ad1,ctime(&seconds));
+    
+    if(sd_flag)
+    {
+        GreenLed= 0;
+        FILE *fp = fopen("/sd/LPC824date/data001.csv", "a");
+        if(fp != NULL) 
+        {
+            fprintf(fp, "%s\t%.0f\t%.0f\n", ctime(&seconds), ph0,ad1); 
+            fclose(fp); 
+            GreenLed= 0;  
+        }
+        else 
+        {
+             GreenLed= 1;            
+        }        
+    }    
+}
+
+void sd_init()
+{
+    RedLed=1;
+    mkdir("/sd/LPC824date", 0777);
+    FILE *fp = fopen("/sd/LPC824date/data001.csv", "w");
+    if(fp == NULL) {
+        pc.printf("Could not open file for write, Please insert your SD CARD!\n");
+        GreenLed= 1;
+        sd_flag=0;
+        }
+     else 
+     {
+         sd_flag = 1;
+         GreenLed= 0;
+     }      
+}
+
+int main() {   
+    pc.printf("LPC824 sd-dh11-ph-ds1302 demo start\r\n");
+    #ifdef INITIAL_RUN    
+    clk.set_time(1494675200); //2017.5.13.11.33
     #endif
-    
     char storedByte = clk.recallByte(0);
-    //printf("\r\nStored byte was %d, now increasing by one\r\n", storedByte);
-    clk.storeByte(0, storedByte + 1);
-    //
-    
-    int err;
-    wait(1); // wait 1 second for DHT11 to stabilyze
-    
-    //printf("Hello World!\n");   
- 
-    mkdir("/sd/dados", 0777);
-    
-    FILE *fp = fopen("/sd/dados/data001.csv", "w");
-    if(fp == NULL) {
-        error("Could not open file for write\n");
-        RedLed= 0;
+    clk.storeByte(0, storedByte + 1); 
+    sd_init(); 
+    ticker.attach(&LPC824_ticker, sampleTime);   
+    while(1)
+    {
         
-        }
-    while (1) {
-    
-    Blueled= 1;
-    RedLed= 1;
-    GreenLed= 1;
-    
-   if (count < 12000000){
-        count++;
-        } else{  
-        // --------------------------
-       
-        err = sensor.readData();
-        if (err == 0) {
-            GreenLed= 0;
-            printf("Temperature is %4.2f \r\n",sensor.ReadTemperature(CELCIUS));
-            //printf("Temperature is %4.2f F \r\n",sensor.ReadTemperature(FARENHEIT));
-            //printf("Temperature is %4.2f K \r\n",sensor.ReadTemperature(KELVIN));
-            printf("Humidity is %4.2f \r\n",sensor.ReadHumidity());
-            //printf("Dew point is %4.2f  \r\n",sensor.CalcdewPoint(sensor.ReadTemperature(CELCIUS), sensor.ReadHumidity()));
-            //printf("Dew point (fast) is %4.2f  \r\n",sensor.CalcdewPointFast(sensor.ReadTemperature(CELCIUS), sensor.ReadHumidity()));
-            
-        } else
-            printf("\r\nErr %i \n",err);
-            
-        // ----------------------------  
-    FILE *fp = fopen("/sd/dados/data001.csv", "a");
-    if(fp == NULL) {
-        error("Could not open file for write\n");
-        
-       }
-    
-    ldrcalc= LDR.read();
-    ldrcalc= (1/ldrcalc)-1;
-    time_t seconds = clk.time(NULL);
-    //fprintf(fp, "%s\r,%f,%f,%f\n", "LM35", "DHT11", "Humid", "Month", "Day", "Hour", "Year");
-    fprintf(fp, "%s\r,%f,%f,%f,%f", ctime(&seconds), 333.333*LM35.read(), sensor.ReadTemperature(CELCIUS), sensor.ReadHumidity(), ldrcalc); 
-    fclose(fp);  
-    //printf("Goodbye World!\n");
-    count=0;
-    Blueled= 0;
     }
-    }
-    }
\ No newline at end of file
+}