eprintf mit irq
Diff: eprintf.h
- Revision:
- 2:f63032cc0c0a
- Parent:
- 0:4843fcdba3cc
- Child:
- 3:de07cab9fc01
--- a/eprintf.h Thu Jun 23 13:58:03 2011 +0000 +++ b/eprintf.h Thu Jul 21 07:09:17 2011 +0000 @@ -1,10 +1,49 @@ -#ifndef __os_printf_h__ - #define __os_printf_h__ - - // os.SendEvent (EV_PRINTF, &task_printf_Verarbeitung); +#ifdef __EPRINTF_H__ +#define __EPRINTF_H__ + +#include "extdef.h" +#include "globals.h" +#include "rbuf.h" + +#define TASK_EPRINTF_ID 2 +#define TASK_EPRINTF_PRIO 5 +#define TASK_EPRINTF_ID_STACK_SZ 128 + + // Resourcen +#define RESOURCE_EPRINTF 1 +#define RESOURCE_EPRINTF_PRIO 70 + + // Events sind Bits innerhalb eines 32-Bit intgers +//#define EV_KEYBOARD 4 +#define EV_EPRINTF 8 +//#define EV_SNIFFER 16 -void printf_verarbeitung (void); -int eprintf (char *, ...); -void PC_UART_USB_interrupt (void); + // Fehler +#define FEHLER_RX_INT_OHNE_ZEICHEN 1 +#define FEHLER_RBUF_PUT_IN_RX_INT 2 +#define FEHLER_EV_KEYBOARD_OHNE_CHAR 3 +#define FEHLER_TX_PUTCHAR 4 +#define FEHLER_EPRINTF_TEST_RESOURCE 5 +#define FEHLER_EPRINTF_LOCK_RESOURCE 6 +#define FEHLER_EPRINTF_FAST_VOLL 7 +#define FEHLER_EPRINTF_STRING_ZU_GROSS 8 +#define FEHLER_EPRINTF_RBUF_PUT 9 + + // Spoolbuffergroesse fuer eprintf +#define SB_GROESSE 1024 -#endif // von ifndef __os_printf_h__ + // 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); + +#endif // __EPRINTF_H__ \ No newline at end of file