UAVX Multicopter Flight Controller.

Dependencies:   mbed

Revision:
2:90292f8bd179
Parent:
0:62a1c91a859a
--- a/nonvolatile.c	Fri Feb 25 01:35:24 2011 +0000
+++ b/nonvolatile.c	Tue Apr 26 12:12:29 2011 +0000
@@ -2,7 +2,7 @@
 // =                              UAVXArm Quadrocopter Controller                                =
 // =                           Copyright (c) 2008 by Prof. Greg Egan                             =
 // =                 Original V3.15 Copyright (c) 2007 Ing. Wolfgang Mahringer                   =
-// =                     http://code.google.com/p/uavp-mods/ http://uavp.ch                      =
+// =                           http://code.google.com/p/uavp-mods/                               =
 // ===============================================================================================
 
 //    This is part of UAVXArm.
@@ -45,16 +45,9 @@
 int8 PX[PX_LENGTH], PXNew[PX_LENGTH];
 
 void CheckSDCardValid(void) {
-    /*
-        FILE *testfile;
 
-        testfile = fopen("/SDCard/OK", "w");
-        F.SDCardValid = testfile != NULL;
-        if ( F.SDCardValid ) fclose(testfile);
-    */
     F.SDCardValid =  SDCard.initialise_card() != 0;
 
-
 } // CheckSDCardValid
 
 void WritePXImagefile(void) {
@@ -93,7 +86,6 @@
 
 boolean ReadPXImagefile(void) {
     static uint16 a;
-    static int8 r;
     static int32 v, CheckSum;
     static boolean OK;
 
@@ -102,7 +94,6 @@
     else
         pxfile = fopen("/local/Params.txt", "r");
 
-
     OK = false;
     if ( pxfile != NULL ) {
         CheckSum = 0;
@@ -129,11 +120,14 @@
 
 } // ReadPXImagefile
 
+void CreateLogfile(void) {
 
-void CreateLogfile(void) {
-    static uint8 i;
+#ifndef SUPPRESS_SDCARD
+
+    static int16 i;
 
     UpdateRTC();
+
     if ( F.SDCardValid )
         strftime(RTCLogfile, 32, "/SDCard/L%H-%M.log", RTCTime );
     else
@@ -143,7 +137,7 @@
 
     LogfileIsOpen = logfile != NULL;
     if ( LogfileIsOpen ) {
-        i=0;
+        i = 0;
         while ( RTCString[i] != 0 )
             TxLogChar(RTCString[i++]);
         TxLogChar(CR);
@@ -151,6 +145,8 @@
     }
     LogChars = 0;
 
+#endif // !SUPPRESS_SDCARD
+
 } // CreateLogfile
 
 void CloseLogfile(void) {
@@ -160,8 +156,11 @@
 void TxLogChar(uint8 ch) {
 
 #ifndef SUPPRESS_SDCARD
-    if ( LogfileIsOpen )
-        fprintf(logfile, "%c",  ch);
+    if ( LogfileIsOpen ) {
+        LogfileIsOpen =  fprintf(logfile, "%c",  ch) > 0;
+        if ( !LogfileIsOpen )
+            CloseLogfile();
+    }
 #endif // !SUPPRESS_SDCARD
 } // TxLogChar