eprintf mit irq

Revision:
4:5138a20c4989
Parent:
3:de07cab9fc01
Child:
5:8d716aa183dc
--- a/eprintf.c	Thu Jul 21 07:26:22 2011 +0000
+++ b/eprintf.c	Thu Jul 21 07:38:51 2011 +0000
@@ -2,8 +2,18 @@
  #define __EPRINTF_C__ 
 
 #include "eprintf.h" 
+#include "mbos.h" 
 
-static int eprintf_fehlerzaehler = 0; 
+extern mbos os; 
+extern Serial pc; 
+// extern int eprintf_fehlerzaehler = 0; 
+
+extern      rbuf_t     *printbuf; 
+
+extern      int         letzter_Fehler; 
+
+char        cb [SB_GROESSE];            // Der Spoolbuffer zum PC 
+static int  eprintf_fehlerzaehler = 0; 
 
 void TX_irq_eprintf (void) { 
       // Wird bei Tx-Empty oder explizit aufgerufen 
@@ -72,7 +82,7 @@
         slen = strlen (cb); 
         if (slen > (printbuf->buflen - printbuf->bufcnt - 2)) 
           { 
-              // wenn es nicht reinpasst, gleich mit Fehler zurück 
+              // wenn es nicht reinpasst, gleich mit Fehler zurück 
             letzter_Fehler = FEHLER_EPRINTF_STRING_ZU_GROSS; 
             goto eprintf_end_fehler; 
           } 
@@ -97,13 +107,13 @@
            } 
         } 
     os.FreeResource (RESOURCE_EPRINTF); 
-    TX_irq_eprintf ();     // Und das erste Zeichen, falls möglich, gleich ausgeben 
+    TX_irq_eprintf ();     // Und das erste Zeichen, falls möglich, gleich ausgeben 
     return 0;                  // 0 = kein Fehler 
     
 eprintf_end_fehler: 
     eprintf_fehlerzaehler++; 
     os.FreeResource (RESOURCE_EPRINTF); 
-    return letzter_Fehler;     // Mit Fehler zurück 
+    return letzter_Fehler;     // Mit Fehler zurück 
   } 
 void task_eprintf_verarbeitung (void) { 
       // Grundsaetzlich gilt: Immer nur per os warten, wenn es nichts zu tun gibt!