resource.c
来自「cs5460a做功率表用 cs5460a做功率表用 cs5460a做功率表」· C语言 代码 · 共 79 行
C
79 行
/**********************************************
公司名称:
文 件 名:
版 本 号:
程序设计:
说 明:几种不同的延时、BCD处理、小数点处理函数
完成日期:
修改日期:
功能摘要:
***********************************************/
#define _Resource
#include"Includes.h"
volatile uint8 Os_Enter_Sum = 0;
void HexToBcd(uint8 *pBuf,uint16 temp); //十六进制BCD码转换
void DealZero(uint8 *pBuf);
void DoPot(uint8 *pBuf,uint32 temp);
uint16 DealRms(uint8 *pBuf,uint32 Kval);
//--------------------------------
void HexToBcd(uint8 *pBuf,uint16 temp)
{
uint8 i;
for (i=0; i<4; i++) {pBuf[i] = 0;}
while (temp >= 1000){temp -= 1000; pBuf[3]++;}
while (temp >= 100) {temp -= 100; pBuf[2]++;}
while (temp >= 10) {temp -= 10; pBuf[1]++;}
pBuf[0] = temp;
}
//---------------------------------
void DealZero(uint8 *pBuf)
{
uint8 i;
for(i=3;i!=0;i--)
{
if (pBuf[i] == 0)
{
pBuf[i] = HIDE;
}
else
{
break;
}
}
}
//---------------------------------
void DoPot(uint8 *pBuf,uint32 temp)
{
uint8 i = 3;
while (temp >= 10000) //小数点处理
{
temp /= 10;
i--;
}
HexToBcd(pBuf,temp);
if (i != 0)
{
pBuf[i] += 10; //添加小数点
}
}
//----------------------------------
uint16 DealRms(uint8 *pBuf,uint32 Kval)
{
uint16 temp1;
uint32 temp2;
temp1 = (uint16)(*pBuf) << 8;
pBuf++;
temp1 += *pBuf;
temp2 = temp1 * Kval;
temp1 = temp2 >> 16;
return (temp1);
}
//---------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?