⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 num.c

📁 达盛EL-ARM-830
💻 C
字号:
/*
;************************************************************************************************************
;*				    				     北京达盛科技有限公司
;*                                     	    研    发    部
;*
;*                                 	    http://www.techsine.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;*
;* 文件名称 : Glib.h	
;* 文件功能 : 该文件为GUI的图形显示程序API。
;* 补充说明 : 
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM开发小组
;* 修改日期 : 2004/00/00
;* 版本声明 : V1.0.1
;*-------------------------------------------- 历史版本信息 -------------------------------------------------
;* 文件作者 : ARM开发小组
;* 创建日期 : 2004/07/07
;* 版本声明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
*************************************************************************************************************
*/
#include "Glib.h"
/*
*************************************************************************************************************
- 函数名称 : void GUI_DispDecAt(I32 v, I16P x, I16P y, U8 Len)
- 函数说明 : 显示十进制函数
- 输入参数 : x,y
- 输出参数 : 无
*************************************************************************************************************
*/  
void GUI_DispDecAt(I32 v, I16P x, I16P y, U8 Len) {
	char ac[12];
	char* s = ac;
  GUI_AddDecShift(v, Len, 0, &s);
  Disp_String(ac, x, y);
}
const U32 GUI_Pow10[10] = {
  1 , 10, 100, 1000, 10000,
  100000, 1000000, 10000000, 100000000, 1000000000
};
/*
*************************************************************************************************************
- 函数名称 : void GUI_AddDecShift(I32 v, U8 Len, U8 Shift, char**ps)
- 函数说明 : 填加十进制函数
- 输入参数 : x,y
- 输出参数 : 无
*************************************************************************************************************
*/  
void GUI_AddDecShift(I32 v, U8 Len, U8 Shift, char**ps) {
  char c,GUI_DecChar;
  long d;
  GUI_DecChar = '.';
  if (Shift) Len--;
  if ((U32)v >= GUI_Pow10[Len])
	v = GUI_Pow10[Len]-1;
  while (Len) 
  {
    if (Len--==Shift)
      *(*ps)++ = GUI_DecChar;
    d = GUI_Pow10[Len];
    c = (char) (v/d);
    v -= c*d;
    *(*ps)++ = c+'0';
  }
  **ps = 0;
}
/*
*************************************************************************************************************
- 函数名称 : void GUI_DispBinAt(U32 v, I16P x, I16P y, U8 Len)
- 函数说明 : 显示2进制函数
- 输入参数 : x,y
- 输出参数 : 无
*************************************************************************************************************
*/  
void GUI_DispBinAt(U32 v, I16P x, I16P y, U8 Len) {
	char ac[33];
	char* s = ac;
  GUI_AddBin(v, Len, &s);
  Disp_String(ac, x, y);
}
void GUI_AddBin(U32 v, U8 Len, char**ps) 
{
  char *s = *ps;
  (*ps) += Len;
  **ps     = '\0';     /* Make sure string is 0-terminated */
  while(Len--) {
    *(s+Len) = (char)('0'+ (v&1));
    v>>=1;
  }
}
/*
*************************************************************************************************************
- 函数名称 : void GUI_DispHexAt(U32 v, I16P x, I16P y, U8 Len)
- 函数说明 : 显示16进制函数
- 输入参数 : x,y
- 输出参数 : 无
*************************************************************************************************************
*/  
void GUI_DispHexAt(U32 v, I16P x, I16P y, U8 Len) {
  char ac[9];
	char* s = ac;
  GUI_AddHex(v, Len, &s);
  Disp_String(ac, x, y);
}
static const char acHex[16] =  {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
/*
*************************************************************************************************************
- 函数名称 : void GUI_AddHex(U32 v, U8 Len, char**ps)
- 函数说明 : 填加16进制函数
- 输入参数 : x,y
- 输出参数 : 无
*************************************************************************************************************
*/  
void GUI_AddHex(U32 v, U8 Len, char**ps) {
  char *s = *ps;
  if (Len > 8)
    return;
  (*ps) += Len;
  **ps     = '\0';     /* Make sure string is 0-terminated */
  while(Len--) {
    *(s+Len) = acHex[v&15];
    v>>=4;
  }
}

⌨️ 快捷键说明

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