eprintf mit irq

Files at this revision

API Documentation at this revision

Comitter:
est2fe
Date:
Thu Jul 21 07:38:51 2011 +0000
Parent:
3:de07cab9fc01
Child:
5:8d716aa183dc
Commit message:
V03.2

Changed in this revision

eprintf.c Show annotated file Show diff for this revision Revisions of this file
eprintf.h Show annotated file Show diff for this revision Revisions of this file
--- 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! 
--- a/eprintf.h	Thu Jul 21 07:26:22 2011 +0000
+++ b/eprintf.h	Thu Jul 21 07:38:51 2011 +0000
@@ -1,9 +1,12 @@
 #ifndef     __EPRINTF_H__ 
  #define    __EPRINTF_H__ 
 
-#include   "extdef.h" 
-#include   "globals.h" 
+//#include   "extdef.h" 
+//#include   "globals.h" 
 #include   "rbuf.h"   
+#include   "mbed.h" 
+#include   <stdarg.h>
+
 
 #define     TASK_EPRINTF_ID                2 
 #define     TASK_EPRINTF_PRIO              5 
@@ -32,16 +35,9 @@
  // Spoolbuffergroesse fuer eprintf 
 #define     SB_GROESSE                 1024
 
- // Timeout für LockResource und TestResource in [us] 
+ // Timeout für LockResource und TestResource in [us] 
 #define     TO_LockResource            1000 
 
-EXTDEF      rbuf_t     *printbuf; 
-
-int         letzter_Fehler; 
-
-char        cb [SB_GROESSE];            // Der Spoolbuffer zum PC 
-static int  eprintf_fehlerzaehler = 0; 
-
 void        TX_irq_eprintf            (void); 
 int         eprintf                   (char *format, ...); 
 void        task_eprintf_verarbeitung (void);