cdms n bae
Dependencies: SDFileSystem mbed-rtos mbed
Fork of CDMS_RTOS by
hk.cpp
- Committer:
- pradeepvk2208
- Date:
- 2015-02-05
- Revision:
- 6:ee97f01e6b7d
- Child:
- 7:60e940b7a36b
File content as of revision 6:ee97f01e6b7d:
#include "hk.h" SPI spi(PTD6, PTD7, PTD5); DigitalOut cs(D6); SDFileSystem sd(PTD6, PTD7, PTD5, D7,"sd"); Timer t1; DigitalOut interrupt(D9); const int addr = 0x20; bool ack0; I2C master (D14,D15); void spiwrite(int a) { cs=1; cs=0; spi.write(a); spi.write(0x01); } int spiread(int a) { cs=1; cs=0; spi.write(a); return(spi.write(0x00)); } char* getname(int year1,int month1,int date1,int day1,int hours1,int minutes1,int seconds1) { year1= hexint(year1); month1=hexint(month1); date1=hexint(date1); day1=hexint(day1); hours1=hexint(hours1); minutes1=hexint(minutes1); seconds1=hexint(seconds1); char time[15]; sprintf(time,"%02d%02d%02d%02d%02d%02d%02d",year1,month1,date1,day1,hours1,minutes1,seconds1); return(time); } int hexint(int a) { a=(a/16)*10+(a%16); return a; } //storedata stores the dummy structure in the file with timestamp as the filename in HK directory void init_rtc(void) { spi.format(8,3); spi.frequency(1000000); spiwrite(0x80); //write seconds to 01 spiwrite(0x81); //write minutes t0 01 spiwrite(0x82); //write hours to 01 spiwrite(0x83); //write day of week to 01 spiwrite(0x84); //write day of month to 01 spiwrite(0x85); //write month to 01 spiwrite(0x86); //write year to 01 } void storedata(char * data,int length) { ack0 =true; interrupt = 1; t1.start(); //wait_ms(20); ack0 = master.read(addr|1,data,length); t1.stop(); if(!ack0) { printf("\n master has read %s from slave\n\r",data); } //master.stop(); printf("\n%d\n\r",t1.read_us()); t1.reset(); interrupt=0; spi.format(8,3); spi.frequency(1000000); int seconds=spiread(0x00); //read seconds int minutes =spiread(0x01); //read minutes int hours =spiread(0x02); //read hours int day =spi.write(0x03); //read day of the week int date =spiread(0x04); //read day of the month int month =spiread(0x05); //read month int year =spiread(0x06); //read year cs = 1; //Assigning dummy values to the structure /* SensorData Sensor; printf("Writing dummy values\n"); strcpy( Sensor.Voltage, "49"); strcpy( Sensor.Current, "83"); Sensor.Temperature ='5'; strcpy( Sensor.PanelTemperature, "4"); Sensor.Vcell_soc='9'; Sensor.alerts= '4'; Sensor.crate='7'; Sensor.BatteryTemperature='6'; Sensor.faultpoll='4'; Sensor.faultir='g'; Sensor.power_mode='k'; strcpy( Sensor.AngularSpeed, "9"); strcpy(Sensor.Bnewvalue,"6"); printf("Done writing dummy values\n"); */ mkdir("/sd/hk", 0777); char date2[100]="/sd/hk/"; strcat(date2,getname(year,month,date,day,hours,minutes,seconds)); strcat(date2,".txt"); FILE *fp ; fp= fopen(date2, "w"); if(fp == NULL) { error("Could not open file for write\n"); } else { fprintf(fp, "%s ", data); fclose(fp); printf("%s",getname(year,month,date,day,hours,minutes,seconds)); } }