I already checked the back up battery. It Looks to be Ok. However, is a Kind of noisy. It shows spykes of about 1 Vpp. I will Change the battery anyway.
Here a little piece of my code. Please let me know if you see anything weird:
in my custom json library:
/* START FUNCTION DESCRIPTION *****************
json_addValueNumber
SYNTAX: int json_addValueNumber(FATfile *file, void *value, int type, const far char *after)
KEYWORDS: json
DESCRIPTION: function to write numerical values into a json formatted file.
END DESCRIPTION *******************************************/
int json_addValueNumber(FATfile file, void value, int type, const far char after)
{
auto int rc=0;
switch(type)
{
case UCHR:
sprintf(buf, β%c\0β,(unsigned char)value);
break;
case UINT:
sprintf(buf, β%u\0β,(unsigned int)value);
break;
case INT:
sprintf(buf, β%d\0β,(int)value);
break;
case USINT:
sprintf(buf, β%u\0β,(unsigned short) value);
break;
case FLOAT:
sprintf(buf, β%.2f\0β,(float)value);
break;
default:
break;
}
if(after!=NULL) f_strcat(buf, after);
rc=fat_xWrite(file, (long)buf, strlen(buf));
return rc;
}
in the main program:
// Mount SD card
fCheckError(sspec_automount(SSPEC_MOUNT_ANY, NULL, NULL, NULL),FailedFunct017,β!=β,0);
while(1)
{
loophead();
costate 1 //β¦
costate 2 //β¦
costate // data logging
{
waitfor(DelaySec(DataReg_T));
if (Exp_running == 1)
{
sprintf(s,DataTmp);
fCheckError(fat_Open(fat_part_mounted[0],s,FAT_FILE,FAT_OPEN,&DataTemp_file,&prealloc),FailedFunct041,β!=β,0);
fat_Seek(&DataTemp_file, -6, SEEK_END);
fCheckError(fat_Write(&DataTemp_file,β,
β,3),FailedFunct032,β!=β,3);
sprintf(s,β#%d\0β,meascount);
json_addName(&DataTemp_file,NULL,s,β[β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&Stirring,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&InternalTemp,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&FeedTemp,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&HumidifierTemp,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&MBRTemp,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&DO,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&pHbis,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&P1,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&P2,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&P3,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&Flow1,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&Flow2,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&Flow3,FLOAT,β,β);
json_addValueNumber(&DataTemp_file,(unsigned int*)&ElapsedTime,FLOAT,β]β);
fCheckError(fat_Write(&DataTemp_file,"
}
}β,6),FailedFunct032,β!=β,6);
fCheckError(fat_Close(&DataTemp_file),FailedFunct042,β!=",0);
meascount++;
}
}
}
Somewhere else before powering down:
// Unmount all of the mounted FAT partitions & devices before exit
for (i = 0; i < num_fat_devices * FAT_MAX_PARTITIONS;i += FAT_MAX_PARTITIONS)
{
if (fat_part_mounted[i]) fat_UnmountDevice(fat_part_mounted[i]->dev);
}