00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <avr/io.h>
00022 #include <avr/signal.h>
00023 #include <avr/interrupt.h>
00024
00025 #include "global.h"
00026 #include "debug.h"
00027
00028 #include "rprintf.h"
00029
00030
00031
00032
00033
00034
00035 void debugPrintHexTable(u16 length, u08 *buffer)
00036 {
00037 u08 i;
00038 u16 j;
00039 u08 *buf;
00040 u08 s;
00041
00042 buf = buffer;
00043
00044
00045 rprintfProgStrM(" 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF\r\n");
00046 rprintfProgStrM(" ----------------------------------------------- ---- ASCII -----\r\n");
00047
00048
00049 for(j=0; j<((length+15)>>4); j++)
00050 {
00051
00052 rprintfu16(j<<4);
00053 rprintfChar(' ');
00054
00055
00056 for(i=0; i<0x10; i++)
00057 {
00058
00059 if( ((j<<4)+i) < length)
00060 {
00061
00062 rprintfu08(buf[(j<<4)+i]);
00063 rprintfChar(' ');
00064 }
00065 else
00066 {
00067
00068
00069 rprintfProgStrM(" ");
00070 }
00071 }
00072
00073
00074 rprintfChar(' ');
00075
00076
00077 for(i=0; i<0x10; i++)
00078 {
00079
00080 if( ((j<<4)+i) < length)
00081 {
00082
00083 s = buf[(j<<4)+i];
00084
00085 if(s >= 0x20)
00086 rprintfChar(s);
00087 else
00088 rprintfChar('.');
00089 }
00090 else
00091 {
00092
00093
00094 rprintfChar(' ');
00095 }
00096 }
00097 rprintfCRLF();
00098 }
00099 }