Code: Select all
Serial.println("Log");
lat = (GPS.latitude);
lon = (GPS.longitude);
dtostrf(lat,10,5,charbuffer); //float to string conversion (string in this case is char array)
dtostrf(lon,11,5,charbuffer2);
Serial.println(GPS.latitude, 8);
Serial.println(GPS.longitude, 8);
Serial.println(lat,10);
Serial.println(lon,10);
Serial.println(charbuffer);
Serial.println(charbuffer2);
latIntString = charbuffer; //convert char array to actual string
lonIntString = charbuffer2;
latIntString = latIntString.substring(0,2); //extract first 2 characters of latitude from string
lonIntString = lonIntString.substring(0,3);
Serial.println(latIntString);
Serial.println(lonIntString);
latDecString = charbuffer; //put contents of charbuffer in latDedString
lonDecString = charbuffer2;
latDecString = latDecString.substring(2); //extract everything but first 2 digits of latitude
lonDecString = lonDecString.substring(3); //extract everything but first 3 digits of longitude
Serial.println(latDecString);
Serial.println(lonDecString);
latDecString.toCharArray(latCharBuffer,8); //convert string to char array
lonDecString.toCharArray(lonCharBuffer,9);
/* latCorr = atof(latCharBuffer); //convert char array to float
lonCorr = atof(lonCharBuffer);
latCorr = latIntString.toInt()+(latCorr/60);//perform conversion of dddd.mmmmm to dd.dddd
lonCorr = lonIntString.toInt()+(lonCorr/60);
Serial.println(latCorr,7);
Serial.print("-");
Serial.println(lonCorr,7); */
1. latDecString.toCharArray(latCharBuffer,8); //convert string to char array
2. lonDecString.toCharArray(lonCharBuffer,9);
If I comment 2 out there is no problem. If I move 2 before line 1 and comment out line 1 (now in position 2) there is no problem. Is there a problem with how I've used toCharArray?
The code for opening the SD file for writing the file is in the setup loop:
Code: Select all
char filename[15];
strcpy(filename, "GPSLOG00.TXT");
for (uint8_t i = 0; i < 100; i++) {
filename[6] = '0' + i/10;
filename[7] = '0' + i%10;
// create if does not exist, do not open existing, write, sync after write
if (! SD.exists(filename)) {
break;
}
}
logfile = SD.open(filename, FILE_WRITE);
if( ! logfile ) {
Serial.print("Couldnt create "); Serial.println(filename);
error(3);
}
Serial.print("Writing to "); Serial.println(filename);
Any ideas?