lpc824break mbed sd文件系统

Dependencies:   DS1302 SDFileSystem mbed

Fork of temp_humid_time_DS1302_LM35_DHT11 by Clovis Fritzen

main.cpp

Committer:
dadangjia
Date:
2017-06-08
Revision:
1:b201895769bd
Parent:
0:8f0934e41a57

File content as of revision 1:b201895769bd:

#include "mbed.h"
#include "DS1302.h"
#include "SDFileSystem.h"

Serial pc(P0_4,P0_0,921600);
Ticker ticker; 
float sampleTime = 1.0;
// Defines for the DS1302 timer module
//#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(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

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);
    clk.storeByte(0, storedByte + 1); 
    sd_init(); 
    ticker.attach(&LPC824_ticker, sampleTime);   
    while(1)
    {
        
    }
}