|
for (i=0;i<3;i++)
{
Read_From_5460 (0x1e,pbuf,i);
if((pbuf[0]&0x80) == 0x80) //此处是判断状态寄存器里最高位DRDY是否置位,置位后代表数据就绪
{
Read_From_5460 (0x18,pbuf,i);
////////////////////////////////////////////////////////
temp = pbuf[0];
temp = (temp<<8)+pbuf[1];
temp = temp*(SPAN_PUH);
voltage_value = temp/39321;
///////////////////////////////////////////////////////
}
这是我读三个CS5463电压的程序,//////////之间的是我自己数据处理过程,这里的数据处理先忽略,我知道功率及功率因数寄存器里读出的数是>=-1,<1的,是补码,要换算的,我就是想问是不是想读功率和功率因数,是不是把上面改成
for (i=0;i<3;i++)
{
Read_From_5460 (0x1e,pbuf,i);
if((pbuf[0]&0x80) == 0x80)
{
Read_From_5460 (0x14,pbuf,i);//读功率指令是0X14,读因数是0X32
////////////////////////////////////////////////////////
//先忽略这里
temp = pbuf[0];
temp = (temp<<8)+pbuf[1];
temp = temp*(SPAN_PUH);
voltage_value = temp/39321;
///////////////////////////////////////////////////////
}
这样就能读出正确的数了吗 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|