debug.c

来自「mcu for gm5621带遥控,键盘输入的单片机代码.供学习参考使用.谢谢.」· C语言 代码 · 共 110 行

C
110
字号
//#include "types.h"
#include "board.h"
#include "debugDef.h"
//#include "global.h"





#include "misc.h"




#if DebugVersion

void printData(char *str, WORD value);
void printMsg(char * str);
void putSIOChar(unsigned char sendData);






void putSIOChar(unsigned char sendData)
{ while (TI);
  SBUF=sendData;
  ForceDelay1ms(10);
}
void printMsg(char *str)
{ 
#if 1
char sendData;
  
  sendData=Send_Msg;
  while (sendData)//!='\0')
    { putSIOChar((unsigned char)sendData);
      sendData=*(str++);
    }
  putSIOChar(0xd);
  putSIOChar((char)'\n');
  #else
  char sendData;
  BYTE count;

 sendData = *(str);
  count =10;
  sendData=0x80;//Send_Msg;
  while (count --)//!='\0')
    { putSIOChar((unsigned char)sendData);
      sendData=0x80;//*(str++);
    }
  putSIOChar(0x80);
  //putSIOChar((char)'\n');
  #endif
}

void printData(char *str, WORD value)
{ char sendData=Send_MsgValue;
#if 0
  putSIOChar(Send_MsgValue);
  putSIOChar(value>>8);
  putSIOChar(value&0xFF);
#endif
  while (sendData=*(str++))
    { if (sendData==(char)'%') // %
        { sendData=*(str++);
          if (sendData==(char)'d' || sendData==(char)'x') // d
            { if (value)
                { Bool noneZero=FALSE;
                  WORD divider=10000;
                  char dispValue;

                  if (sendData==(char)'x')
		    divider=0x1000;
                  while (divider)
		    { dispValue=value/divider;
		      value-=dispValue*divider;
                      if (dispValue)
                      	noneZero=TRUE;
                      if (noneZero)
                      	{ if (dispValue>9)
                      	    dispValue+=55;
                          else
                          	dispValue+=0x30;
                          putSIOChar(dispValue);
                        }
                      if (sendData==(char)'d')
                      	divider/=10;
                      else
                      	divider/=0x10;
                    }
                }
              else
  	        putSIOChar('0');
  	    }
  	}
      else
        putSIOChar(sendData);
    }
  putSIOChar(0xd);
  putSIOChar((char)'\n');
}



#endif //DebugVersion

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?