USBasp 2006.09.16.
[pub/USBasp.git] / firmware / usbdrv / oddebug.h
index 28d5f94..1c18b60 100644 (file)
@@ -5,14 +5,12 @@
  * Tabsize: 4
  * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
  * License: Proprietary, free under certain conditions. See Documentation.
- * This Revision: $Id: oddebug.h 52 2005-04-12 16:57:29Z cs $
+ * This Revision: $Id: oddebug.h 215 2006-07-10 21:54:51Z cs $
  */
 
 #ifndef __oddebug_h_included__
 #define __oddebug_h_included__
 
-#include <avr/io.h>
-
 /*
 General Description:
 This module implements a function for debug logs on the serial line of the
@@ -27,82 +25,100 @@ the output and a memory block to dump in hex ('data' and 'len').
 
 
 #ifndef F_CPU
-#      define  F_CPU   12000000        /* 12 MHz */
+#   define  F_CPU   12000000    /* 12 MHz */
+#endif
+
+/* make sure we have the UART defines: */
+#include "iarcompat.h"
+#ifndef __IAR_SYSTEMS_ICC__
+#   include <avr/io.h>
 #endif
 
 #ifndef uchar
-#      define  uchar   unsigned char
+#   define  uchar   unsigned char
 #endif
 
-#if DEBUG_LEVEL > 0 && !defined TXEN   /* no UART in device */
-#      warning "Debugging disabled because device has no UART"
-#      undef   DEBUG_LEVEL
+#if DEBUG_LEVEL > 0 && !(defined TXEN || defined TXEN0) /* no UART in device */
+#   warning "Debugging disabled because device has no UART"
+#   undef   DEBUG_LEVEL
 #endif
 
 #ifndef DEBUG_LEVEL
-#      define  DEBUG_LEVEL     0
+#   define  DEBUG_LEVEL 0
 #endif
 
 /* ------------------------------------------------------------------------- */
 
 #if DEBUG_LEVEL > 0
-#      define  DBG1(prefix, data, len) odDebug(prefix, data, len)
+#   define  DBG1(prefix, data, len) odDebug(prefix, data, len)
 #else
-#      define  DBG1(prefix, data, len)
+#   define  DBG1(prefix, data, len)
 #endif
 
 #if DEBUG_LEVEL > 1
-#      define  DBG2(prefix, data, len) odDebug(prefix, data, len)
+#   define  DBG2(prefix, data, len) odDebug(prefix, data, len)
 #else
-#      define  DBG2(prefix, data, len)
+#   define  DBG2(prefix, data, len)
 #endif
 
 /* ------------------------------------------------------------------------- */
 
-#if    DEBUG_LEVEL > 0
-extern void    odDebug(uchar prefix, uchar *data, uchar len);
+#if DEBUG_LEVEL > 0
+extern void odDebug(uchar prefix, uchar *data, uchar len);
 
 /* Try to find our control registers; ATMEL likes to rename these */
 
 #if defined UBRR
-#      define  ODDBG_UBRR      UBRR
+#   define  ODDBG_UBRR  UBRR
 #elif defined UBRRL
-#      define  ODDBG_UBRR      UBRRL
-#elif defined UBRR1
-#      define  ODDBG_UBRR      UBRR1
-#elif defined UBRR1L
-#      define  ODDBG_UBRR      UBRR1L
+#   define  ODDBG_UBRR  UBRRL
+#elif defined UBRR0
+#   define  ODDBG_UBRR  UBRR0
+#elif defined UBRR0L
+#   define  ODDBG_UBRR  UBRR0L
 #endif
 
 #if defined UCR
-#      define  ODDBG_UCR       UCR
+#   define  ODDBG_UCR   UCR
 #elif defined UCSRB
-#      define  ODDBG_UCR       UCSRB
-#elif defined UCSR1B
-#      define  ODDBG_UCR       UCSR1B
+#   define  ODDBG_UCR   UCSRB
+#elif defined UCSR0B
+#   define  ODDBG_UCR   UCSR0B
+#endif
+
+#if defined TXEN
+#   define  ODDBG_TXEN  TXEN
+#else
+#   define  ODDBG_TXEN  TXEN0
 #endif
 
-#if defined    USR
-#      define  ODDBG_USR       USR
+#if defined USR
+#   define  ODDBG_USR   USR
 #elif defined UCSRA
-#      define  ODDBG_USR       UCSRA
-#elif defined UCSR1A
-#      define  ODDBG_USR       UCSR1A
+#   define  ODDBG_USR   UCSRA
+#elif defined UCSR0A
+#   define  ODDBG_USR   UCSR0A
+#endif
+
+#if defined UDRE
+#   define  ODDBG_UDRE  UDRE
+#else
+#   define  ODDBG_UDRE  UDRE0
 #endif
 
 #if defined UDR
-#      define  ODDBG_UDR       UDR
-#elif defined UDR1
-#      define  ODDBG_UDR       UDR1
+#   define  ODDBG_UDR   UDR
+#elif defined UDR0
+#   define  ODDBG_UDR   UDR0
 #endif
 
-static inline void     odDebugInit(void)
+static inline void  odDebugInit(void)
 {
-       ODDBG_UCR |= (1<<TXEN);
-       ODDBG_UBRR = F_CPU / (19200 * 16L) - 1;
+    ODDBG_UCR |= (1<<ODDBG_TXEN);
+    ODDBG_UBRR = F_CPU / (19200 * 16L) - 1;
 }
 #else
-#      define odDebugInit()
+#   define odDebugInit()
 #endif
 
 /* ------------------------------------------------------------------------- */