📄 getsqrt.c
字号:
/********************************************
*文件名称:18B20.c
*
*摘要:1总线读DS18B20的温度值;
*入口:
*返回:温度(整数部分+1位小数)
*
*版本:V1.0 2008-9-2 13:10:36
*作者:风月无边
*
*********************************************/
static unsigned short GetSqrt(unsigned long dwData) //开平方函数
{
unsigned short wData, i;
unsigned long lTemp1, lTemp2; // 结果、循环计数
if (dwData<36) return 0; // 被开方数,开方结果也为0
wData = 0;
lTemp1 = dwData>>30; // 获取最高位:B[m-1]
dwData <<= 2;
if (lTemp1>1) // 最高位为1
{
wData ++; // 结果当前位为1,否则为默认的0
lTemp1 -= wData;
}
for (i=15; i>0; i--) // 求剩余的15位
{
wData <<= 1; // 左移一位
lTemp1 <<= 2;
lTemp1 += (dwData>>30); // 假设
lTemp2 = wData;
lTemp2 = (lTemp2<<1)+1;
dwData <<= 2;
if (lTemp1>=lTemp2) // 假设成立
{
lTemp1 -= lTemp2;
wData ++;
}
}
return wData;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -