qmk-keychron-q3-colemak-dh/tmk_core/protocol/vusb/usbdrv/oddebug.c
2019-08-30 15:01:52 -07:00

47 lines
1.0 KiB
C

/* Name: oddebug.c
* Project: AVR library
* Author: Christian Starkjohann
* Creation Date: 2005-01-16
* Tabsize: 4
* Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH
* License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt)
* This Revision: $Id: oddebug.c 692 2008-11-07 15:07:40Z cs $
*/
#include "oddebug.h"
#if DEBUG_LEVEL > 0
# warning "Never compile production devices with debugging enabled"
static void uartPutc(char c) {
while (!(ODDBG_USR & (1 << ODDBG_UDRE)))
; /* wait for data register empty */
ODDBG_UDR = c;
}
static uchar hexAscii(uchar h) {
h &= 0xf;
if (h >= 10) h += 'a' - (uchar)10 - '0';
h += '0';
return h;
}
static void printHex(uchar c) {
uartPutc(hexAscii(c >> 4));
uartPutc(hexAscii(c));
}
void odDebug(uchar prefix, uchar *data, uchar len) {
printHex(prefix);
uartPutc(':');
while (len--) {
uartPutc(' ');
printHex(*data++);
}
uartPutc('\r');
uartPutc('\n');
}
#endif