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.
Dependencies: SDFileSystem mbed-rtos mbed
Fork of CDMS_BAE by
hk.cpp
- Committer:
- sakthipriya
- Date:
- 2015-02-05
- Revision:
- 7:60e940b7a36b
- Parent:
- 6:ee97f01e6b7d
- Child:
- 8:4acac3bf5e9b
File content as of revision 7:60e940b7a36b:
#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)
{
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));
}
}
