初级会员

- 积分
- 83
- 金钱
- 83
- 注册时间
- 2015-2-5
- 在线时间
- 3 小时
|
5金钱
计量芯片获取A,B,C三相的电能消耗,A和C相能读出电压,电流和电能消耗,但是 B相却读不出电能消耗。图中调试窗口中的EP和Eq代表电能消耗,为啥A,C相都有数,而B相为0啊,读B相寄存器的地址也是没有问题的啊。B相Ep为0x1F,Eq为0x23。求大神帮忙啊!!!!
01
|
void Read_ATT_BData(void)
|
03
|
BDataTypeDef.P[10]=SPI_ATT_ReadByte(r_Pb);
|
04
|
BDataTypeDef.Q=SPI_ATT_ReadByte(r_Qb);
|
05
|
BDataTypeDef.S=SPI_ATT_ReadByte(r_Sb);
|
06
|
BDataTypeDef.URms[11]=SPI_ATT_ReadByte(r_URmsb);
|
07
|
BDataTypeDef.IRms[11]=SPI_ATT_ReadByte(r_IRmsb);
|
08
|
BDataTypeDef.Pf=SPI_ATT_ReadByte(r_Pfb);
|
09
|
BDataTypeDef.Ep=SPI_ATT_ReadByte(r_Epb);//0X1F
|
10
|
BDataTypeDef.Eq=SPI_ATT_ReadByte(r_Eqb);//0X23
|
12
|
if(BDataTypeDef.P[10]>0x800000)
|
14
|
BDataTypeDef.P[11]=0x1000000-BDataTypeDef.P[10];
|
15
|
BDataTypeDef.Rp[11]=(float)BDataTypeDef.P[11]/112;
|
18
|
BDataTypeDef.Rp[11]=(float)BDataTypeDef.P[10]/112; //?ó??????
|
19
|
if(BDataTypeDef.Q>0x800000)
|
21
|
BDataTypeDef.Q=0x1000000-BDataTypeDef.Q;
|
22
|
BDataTypeDef.Rq=(float)BDataTypeDef.Q/112;
|
25
|
BDataTypeDef.Rq=(float)BDataTypeDef.Q/112; //?ó????????
|
27
|
BDataTypeDef.Rs=(float)BDataTypeDef.S/112; //?ó????????
|
29
|
BDataTypeDef.Rurms[11]=(float)BDataTypeDef.URms[11]/8192; //?ó???????§??(8192=2^13)
|
31
|
BDataTypeDef.Rirms[11]=(float)BDataTypeDef.IRms[11]/8192/6; //?ó???÷???§??(????????????±???????N,N?ù???????é???ó??)
|
33
|
BDataTypeDef.Ep=BDataTypeDef.Ep/EC;
|
35
|
if(BDataTypeDef.Pf>0x800000)
|
37
|
BDataTypeDef.Pf=0x1000000-BDataTypeDef.Pf;
|
38
|
BDataTypeDef.Rpf=(float)BDataTypeDef.Pf/8388608;
|
41
|
BDataTypeDef.Rpf=(float)BDataTypeDef.Pf/8388608; //?ó?????ò??(8388608=2^23)
|
|
|