57 lines
1.1 KiB
C
57 lines
1.1 KiB
C
/**
|
|
* \file
|
|
*
|
|
* Definition of some debugging functions.
|
|
*
|
|
* putstring() and puthex() are from msp430/watchdog.c
|
|
*
|
|
* \author
|
|
* George Oikonomou - <oikonomou@users.sourceforge.net>
|
|
*/
|
|
|
|
#include "8051def.h"
|
|
#include "debug.h"
|
|
|
|
static const char hexconv[] = "0123456789abcdef";
|
|
static const char binconv[] = "01";
|
|
/*---------------------------------------------------------------------------*/
|
|
void
|
|
putstring(char *s)
|
|
{
|
|
while(*s) {
|
|
putchar(*s++);
|
|
}
|
|
}
|
|
/*---------------------------------------------------------------------------*/
|
|
void
|
|
puthex(uint8_t c)
|
|
{
|
|
putchar(hexconv[c >> 4]);
|
|
putchar(hexconv[c & 0x0f]);
|
|
}
|
|
/*---------------------------------------------------------------------------*/
|
|
void
|
|
putbin(uint8_t c)
|
|
{
|
|
unsigned char i = 0x80;
|
|
while(i) {
|
|
putchar(binconv[(c & i) != 0]);
|
|
i >>= 1;
|
|
}
|
|
}
|
|
/*---------------------------------------------------------------------------*/
|
|
void
|
|
putdec(uint8_t c)
|
|
{
|
|
uint8_t div;
|
|
uint8_t hassent = 0;
|
|
for(div = 100; div > 0; div /= 10) {
|
|
uint8_t disp = c / div;
|
|
c %= div;
|
|
if((disp != 0) || (hassent) || (div == 1)) {
|
|
hassent = 1;
|
|
putchar('0'+disp);
|
|
}
|
|
}
|
|
}
|
|
|