00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "oddebug.h"
00012
00013 #if DEBUG_LEVEL > 0
00014
00015 #warning "Never compile production devices with debugging enabled"
00016
00017 static void uartPutc(char c)
00018 {
00019 while(!(ODDBG_USR & (1 << ODDBG_UDRE)));
00020 ODDBG_UDR = c;
00021 }
00022
00023 static uchar hexAscii(uchar h)
00024 {
00025 h &= 0xf;
00026 if(h >= 10)
00027 h += 'a' - (uchar)10 - '0';
00028 h += '0';
00029 return h;
00030 }
00031
00032 static void printHex(uchar c)
00033 {
00034 uartPutc(hexAscii(c >> 4));
00035 uartPutc(hexAscii(c));
00036 }
00037
00038 void odDebug(uchar prefix, uchar *data, uchar len)
00039 {
00040 printHex(prefix);
00041 uartPutc(':');
00042 while(len--){
00043 uartPutc(' ');
00044 printHex(*data++);
00045 }
00046 uartPutc('\r');
00047 uartPutc('\n');
00048 }
00049
00050 #endif