First version of the AVR port
diff --git a/contiki-avr/uip/debug.c b/contiki-avr/uip/debug.c
new file mode 100644
index 0000000..fdd25a3
--- /dev/null
+++ b/contiki-avr/uip/debug.c
@@ -0,0 +1,72 @@
+
+#include "compiler.h"
+#include "delay.h"
+
+#include "avr/pgmspace.h"
+
+/*-----------------------------------------------------------------------------------*/
+static void
+delay(void)
+{
+  unsigned char i;
+  for(i = 0; i < 1; ++i) {
+    Delay_10ms(1);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+static char buffer[40];
+static prog_char hextab[] =
+  {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
+/*-----------------------------------------------------------------------------------*/
+static void
+print_buffer(unsigned char len)
+{
+  unsigned char i;
+
+  for(i = 0; i < len; ++i) {
+    delay();
+    UDR0 = buffer[i];
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+void
+debug_print8(unsigned char v)
+{
+  buffer[0] = v / 100 + '0';
+  buffer[1] = (v / 10) % 10 + '0';
+  buffer[2] = v % 10 + '0';
+  buffer[3] = ' ';
+  buffer[4] = PRG_RDB(hextab + (v >> 4));
+  buffer[5] = PRG_RDB(hextab + (v & 0x0f));    
+  buffer[6] = '\n';
+  print_buffer(7);
+}
+/*-----------------------------------------------------------------------------------*/
+void
+debug_print16(unsigned short v)
+{
+  buffer[0] = v / 10000 + '0';
+  buffer[1] = (v / 1000) % 10 + '0';
+  buffer[2] = (v / 100) % 10 + '0';
+  buffer[3] = (v / 10) % 10 + '0';
+  buffer[4] = v % 10 + '0';
+  buffer[5] = ' ';
+  buffer[6] = PRG_RDB(hextab + ((v & 0xf000) >> 12));
+  buffer[7] = PRG_RDB(hextab + ((v & 0x0f00) >> 8));
+  buffer[8] = PRG_RDB(hextab + ((v & 0xf0) >> 4));
+  buffer[9] = PRG_RDB(hextab + (v & 0x0f));    
+  buffer[10] = '\n';
+  print_buffer(11);
+}
+/*-----------------------------------------------------------------------------------*/
+void
+debug_print(prog_char *str)
+{
+  unsigned char i;
+
+  for(i = 0; PRG_RDB(str + i) != 0; ++i) {
+    buffer[i] = PRG_RDB(str + i);
+  }
+  print_buffer(i);
+}
+/*-----------------------------------------------------------------------------------*/