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