00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __oddebug_h_included__
00012 #define __oddebug_h_included__
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef F_CPU
00028 # define F_CPU 12000000
00029 #endif
00030
00031 #ifndef uchar
00032 # define uchar unsigned char
00033 #endif
00034
00035 #if DEBUG_LEVEL > 0 && !(defined TXEN || defined TXEN0)
00036 # warning "Debugging disabled because device has no UART"
00037 # undef DEBUG_LEVEL
00038 #endif
00039
00040 #ifndef DEBUG_LEVEL
00041 # define DEBUG_LEVEL 0
00042 #endif
00043
00044
00045
00046 #if DEBUG_LEVEL > 0
00047 # define DBG1(prefix, data, len) odDebug(prefix, data, len)
00048 #else
00049 # define DBG1(prefix, data, len)
00050 #endif
00051
00052 #if DEBUG_LEVEL > 1
00053 # define DBG2(prefix, data, len) odDebug(prefix, data, len)
00054 #else
00055 # define DBG2(prefix, data, len)
00056 #endif
00057
00058
00059
00060 #if DEBUG_LEVEL > 0
00061 extern void odDebug(uchar prefix, uchar *data, uchar len);
00062
00063
00064
00065 #if defined UBRR
00066 # define ODDBG_UBRR UBRR
00067 #elif defined UBRRL
00068 # define ODDBG_UBRR UBRRL
00069 #elif defined UBRR0
00070 # define ODDBG_UBRR UBRR0
00071 #elif defined UBRR0L
00072 # define ODDBG_UBRR UBRR0L
00073 #endif
00074
00075 #if defined UCR
00076 # define ODDBG_UCR UCR
00077 #elif defined UCSRB
00078 # define ODDBG_UCR UCSRB
00079 #elif defined UCSR0B
00080 # define ODDBG_UCR UCSR0B
00081 #endif
00082
00083 #if defined TXEN
00084 # define ODDBG_TXEN TXEN
00085 #else
00086 # define ODDBG_TXEN TXEN0
00087 #endif
00088
00089 #if defined USR
00090 # define ODDBG_USR USR
00091 #elif defined UCSRA
00092 # define ODDBG_USR UCSRA
00093 #elif defined UCSR0A
00094 # define ODDBG_USR UCSR0A
00095 #endif
00096
00097 #if defined UDRE
00098 # define ODDBG_UDRE UDRE
00099 #else
00100 # define ODDBG_UDRE UDRE0
00101 #endif
00102
00103 #if defined UDR
00104 # define ODDBG_UDR UDR
00105 #elif defined UDR0
00106 # define ODDBG_UDR UDR0
00107 #endif
00108
00109 static inline void odDebugInit(void)
00110 {
00111 ODDBG_UCR |= (1<<ODDBG_TXEN);
00112 ODDBG_UBRR = F_CPU / (19200 * 16L) - 1;
00113 }
00114 #else
00115 # define odDebugInit()
00116 #endif
00117
00118
00119
00120 #endif