/* uart.c */
/*
- This file is part of the This file is part of the AVR-Crypto-Lib.
+ This file is part of the AVR-Crypto-Lib.
Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de)
This program is free software: you can redistribute it and/or modify
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>
-
+#include "hexdigit_tab.h"
#include "uart.h"
#ifdef ATMEGA128
#define RXC RXC0
#endif
+#ifdef AT90USB162
+#define UCSRB UCSR1B
+#define UCSRC UCSR1C
+#define UDR UDR1
+#define UBRRH UBRR1H
+#define UBRRL UBRR1L
+#define URSEL UMSEL10
+#define USART_UDRE_vect USART1_UDRE_vect
+#define USART_RXC_vect USART1_RX_vect
+#define UDRIE UDRIE1
+#define TXEN TXEN1
+#define UMSEL UMSEL1
+#define RXEN RXEN1
+#define RXCIE RXCIE1
+#define UCSZ0 UCSZ10
+#define UCSRA UCSR1A
+#define UDRE UDRE1
+#define RXC RXC1
+#endif
+
+
#ifdef UART_XON_XOFF
#ifdef UART_INTERRUPT
void uart_hexdump(const void* buf, int len)
{
- unsigned char table[]={'0','1','2','3','4','5','6','7',
- '8','9','a','b','c','d','e','f'};
while(len--){
- uart_putc(table[((*((char*)buf))>>4)&0xf]);
- uart_putc(table[(*((char*)buf))&0xf]);
+ uart_putc(pgm_read_byte(hexdigit_tab_P + ((*((uint8_t*)buf))>>4)));
+ uart_putc(pgm_read_byte(hexdigit_tab_P + ((*((uint8_t*)buf))&0xf)));
uart_putc(' ');
buf=(uint8_t*)buf+1;
}