📄 printdbg.c
字号:
/*
printdebug.c
*/
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include"printdbg.h"
#define UART0_DEBUG
int uart0_send_string(unsigned char*string,int len)
{
int i;
#ifdef UART0_DEBUG
for(i=0;i<len;i++)
{
while(!SciaTx_Ready());
SciaRegs.SCITXBUF =string[i];
}
#endif
return i;
}
int uart0_send_char(unsigned char ch)
{
#ifdef UART0_DEBUG
while(!SciaTx_Ready());
SciaRegs.SCITXBUF =ch;
#endif
return 1;
}
char *itoa(int value, char *string, int radix)
{
int i, d;
int flag = 0;
char *ptr = string;
/* This implementation only works for decimal numbers. */
if (radix != 10)
{
*ptr = 0;
return string;
}
if (!value)
{
*ptr++ = 0x30;
*ptr = 0;
return string;
}
/* if this is a negative value insert the minus sign. */
if (value < 0)
{
*ptr++ = '-';
/* Make the value positive. */
value *= -1;
}
for (i = 10000; i > 0; i /= 10)
{
d = value / i;
if (d || flag)
{
*ptr++ = (char)(d + 0x30);
value -= (d * i);
flag = 1;
}
}
/* Null terminate the string. */
*ptr = 0;
return string;
} /* NCL_Itoa */
char *utohex(unsigned int value, char *string, int radix)
{
int i, d,shift;
unsigned int cval,mask;
char *ptr = string;
/* This implementation only works for decimal numbers. */
if (radix != 16)
{
*ptr = 0;
return string;
}
i=0;
shift=12;
cval=value;
mask = 0xffff;
for(i=0;i<4;i++)
{
d=cval>>shift;
cval &= (mask>>(16-shift));
if(d > 9 )
d = d+0x57;
else
d+=0x30;
string[i]=d;
shift -=4;
}
return string;
}
void uprintf(const char *fmt, ...)
{
const char *s;
int d,i;
unsigned int x;
char buf[16];
va_list ap;
va_start(ap, fmt);
while (*fmt) {
if (*fmt != '%')
{
uart0_send_char(*fmt++);
continue;
}
switch (*++fmt) {
case 's':
s = va_arg(ap, const char *);
for ( ; *s; s++) {
uart0_send_char(*s);
}
break;
case 'd':
d = va_arg(ap, int);
itoa(d, buf, 10);
for (s = buf; *s; s++) {
uart0_send_char(*s);
}
break;
case 'x':
x = va_arg(ap, int);
utohex(x, buf, 16);
for (i=0; i<4;i++) {
uart0_send_char(buf[i]);
}
break;
/* Add other specifiers here... */
default:
uart0_send_char(*fmt);
break;
}
fmt++;
}
va_end(ap);
return ; /* Dummy return value */
}
void logPrint(void)
{
uprintf("\r\n===========================================================");
uprintf("\r\n==TMS2812 print demo program. ==");
uprintf("\r\n==version:1.0 ==");
uprintf("\r\n==contect:yang_tch@163.com ==");
uprintf("\r\n==2008.5.29 ==");
uprintf("\r\n===========================================================");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -