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 + -
显示快捷键?