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
00032 #include "usbportability.h"
00033
00034 #ifndef uchar
00035 # define uchar unsigned char
00036 #endif
00037
00038 #if DEBUG_LEVEL > 0 && !(defined TXEN || defined TXEN0)
00039 # warning "Debugging disabled because device has no UART"
00040 # undef DEBUG_LEVEL
00041 #endif
00042
00043 #ifndef DEBUG_LEVEL
00044 # define DEBUG_LEVEL 0
00045 #endif
00046
00047
00048
00049 #if DEBUG_LEVEL > 0
00050 # define DBG1(prefix, data, len) odDebug(prefix, data, len)
00051 #else
00052 # define DBG1(prefix, data, len)
00053 #endif
00054
00055 #if DEBUG_LEVEL > 1
00056 # define DBG2(prefix, data, len) odDebug(prefix, data, len)
00057 #else
00058 # define DBG2(prefix, data, len)
00059 #endif
00060
00061
00062
00063 #if DEBUG_LEVEL > 0
00064 extern void odDebug(uchar prefix, uchar *data, uchar len);
00065
00066
00067
00068 #if defined UBRR
00069 # define ODDBG_UBRR UBRR
00070 #elif defined UBRRL
00071 # define ODDBG_UBRR UBRRL
00072 #elif defined UBRR0
00073 # define ODDBG_UBRR UBRR0
00074 #elif defined UBRR0L
00075 # define ODDBG_UBRR UBRR0L
00076 #endif
00077
00078 #if defined UCR
00079 # define ODDBG_UCR UCR
00080 #elif defined UCSRB
00081 # define ODDBG_UCR UCSRB
00082 #elif defined UCSR0B
00083 # define ODDBG_UCR UCSR0B
00084 #endif
00085
00086 #if defined TXEN
00087 # define ODDBG_TXEN TXEN
00088 #else
00089 # define ODDBG_TXEN TXEN0
00090 #endif
00091
00092 #if defined USR
00093 # define ODDBG_USR USR
00094 #elif defined UCSRA
00095 # define ODDBG_USR UCSRA
00096 #elif defined UCSR0A
00097 # define ODDBG_USR UCSR0A
00098 #endif
00099
00100 #if defined UDRE
00101 # define ODDBG_UDRE UDRE
00102 #else
00103 # define ODDBG_UDRE UDRE0
00104 #endif
00105
00106 #if defined UDR
00107 # define ODDBG_UDR UDR
00108 #elif defined UDR0
00109 # define ODDBG_UDR UDR0
00110 #endif
00111
00112 static inline void odDebugInit(void)
00113 {
00114 ODDBG_UCR |= (1<<ODDBG_TXEN);
00115 ODDBG_UBRR = F_CPU / (19200 * 16L) - 1;
00116 }
00117 #else
00118 # define odDebugInit()
00119 #endif
00120
00121
00122
00123 #endif