📄 tuartlow.c.svn-base
字号:
}
}
/*@param pFmt is a string address
*@param wVal is a print variable
*/
void Printf(Byte *pFmt, Word wVal)
{
#ifndef _USE_STi7710_
Byte ucBff;
Byte ucDisp;
Bool bNotZero;
Bool bHex;
Word wDivider;
wDivider=10000;
bNotZero=_FALSE_;
bHex=_FALSE_;
while( ucBff = *(pFmt++) )
{
if(ucBff == '%') // check special case
{
switch( *(pFmt++) ) // check next character
{
case 'x': // hexadecimal number
case 'X':
wDivider = 0x1000;
bHex = _TRUE_;
case 'd': // decimal number
case 'i':
if(wVal)
{
while(wDivider)
{
ucDisp = wVal/wDivider;
wVal -= ucDisp*wDivider;
if(ucDisp)
bNotZero=_TRUE_;
if(bNotZero)
{
if (ucDisp>9)
putchar((Byte)(ucDisp+55));
else
putchar((Byte)(ucDisp+0x30));
}
if(bHex)
wDivider /= 0x10;
else
wDivider /= 10;
}
}
else
putchar('0');
break;
} // switch
}
else // general
putchar(ucBff); // put a character
} // while
#endif
}
/*@param pFmt is a string address
*@param wVal1 is a print variable
*@param wVal2 is a print variable
*/
void Printf2(Byte *pFmt, Word wVal1, Word wVal2)
{
#ifndef _USE_STi7710_
Byte ucBff;
Byte ucDisp;
Bool bNotZero;
Bool bHex;
Word wDivider;
Byte ucParamNumFlag;
ucParamNumFlag = 1;
wDivider=10000;
bNotZero=_FALSE_;
bHex=_FALSE_;
while( ucBff = *(pFmt++) )
{
if(ucBff == '%') // check special case
{
switch( *(pFmt++) ) // check next character
{
case 'x': // hexadecimal number
case 'X':
wDivider = 0x1000;
bHex = _TRUE_;
case 'd': // decimal number
case 'i':
if(ucParamNumFlag == 1)
{
if(wVal1)
{
while(wDivider)
{
ucDisp = wVal1/wDivider;
wVal1 -= ucDisp*wDivider;
if(ucDisp)
bNotZero=_TRUE_;
if(bNotZero)
{
if (ucDisp>9)
putchar((Byte)(ucDisp+55));
else
putchar((Byte)(ucDisp+0x30));
}
if(bHex)
wDivider /= 0x10;
else
wDivider /= 10;
}
}
else
{
putchar('0');
}
ucParamNumFlag = 2;
wDivider=10000;
bNotZero=_FALSE_;
bHex=_FALSE_;
}
else if(ucParamNumFlag ==2)
{
if(wVal2)
{
while(wDivider)
{
ucDisp = wVal2/wDivider;
wVal2 -= ucDisp*wDivider;
if(ucDisp)
bNotZero=_TRUE_;
if(bNotZero)
{
if (ucDisp>9)
putchar((Byte)(ucDisp+55));
else
putchar((Byte)(ucDisp+0x30));
}
if(bHex)
wDivider /= 0x10;
else
wDivider /= 10;
}
}
else
putchar('0');
break;
}
} // switch
}
else // general
putchar(ucBff); // put a character
} // while
#endif
}
/*@param pFmt is a string address
*@param wVal1 is a print variable
*@param wVal2 is a print variable
*@param wVal3 is a print variable
*/
void Printf3(Byte *pFmt, Word wVal1, Word wVal2, Word wVal3)
{
#ifndef _USE_STi7710_
Byte ucBff;
Byte ucDisp;
Bool bNotZero;
Bool bHex;
Word wDivider;
Byte ucParamNumFlag;
ucParamNumFlag = 1;
wDivider=10000;
bNotZero=_FALSE_;
bHex=_FALSE_;
while( ucBff = *(pFmt++) )
{
if(ucBff == '%') // check special case
{
switch( *(pFmt++) ) // check next character
{
case 'x': // hexadecimal number
case 'X':
wDivider = 0x1000;
bHex = _TRUE_;
case 'd': // decimal number
case 'i':
if(ucParamNumFlag == 1)
{
if(wVal1)
{
while(wDivider)
{
ucDisp = wVal1/wDivider;
wVal1 -= ucDisp*wDivider;
if(ucDisp)
bNotZero=_TRUE_;
if(bNotZero)
{
if (ucDisp>9)
putchar((Byte)(ucDisp+55));
else
putchar((Byte)(ucDisp+0x30));
}
if(bHex)
wDivider /= 0x10;
else
wDivider /= 10;
}
}
else
{
putchar('0');
}
ucParamNumFlag = 2;
wDivider=10000;
bNotZero=_FALSE_;
bHex=_FALSE_;
}
else if(ucParamNumFlag == 2)
{
if(wVal2)
{
while(wDivider)
{
ucDisp = wVal2/wDivider;
wVal2 -= ucDisp*wDivider;
if(ucDisp)
bNotZero=_TRUE_;
if(bNotZero)
{
if (ucDisp>9)
putchar((Byte)(ucDisp+55));
else
putchar((Byte)(ucDisp+0x30));
}
if(bHex)
wDivider /= 0x10;
else
wDivider /= 10;
}
}
else
{
putchar('0');
}
ucParamNumFlag = 3;
wDivider=10000;
bNotZero=_FALSE_;
bHex=_FALSE_;
}
else if(ucParamNumFlag ==3)
{
if(wVal3)
{
while(wDivider)
{
ucDisp = wVal3/wDivider;
wVal3 -= ucDisp*wDivider;
if(ucDisp)
bNotZero=_TRUE_;
if(bNotZero)
{
if (ucDisp>9)
putchar((Byte)(ucDisp+55));
else
putchar((Byte)(ucDisp+0x30));
}
if(bHex)
wDivider /= 0x10;
else
wDivider /= 10;
}
}
else
putchar('0');
break;
}
} // switch
}
else // general
putchar(ucBff); // put a character
} // while
#endif
}
#ifdef _USE_STi7710_
SYSUARTSTRUCT volatile s_SysUARTStruct;
UARTRECEIVESTRUCT volatile s_UARTReceiveStruct;
void OnEventTransmit(void)
{
}
void SetUartPort(Byte port)
{
ucUartPort=port;
}
void OnEventReceive(void)
{
ReceiveUartCommand();
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -