OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3843|回复: 2

计量芯片获取电能问题

[复制链接]

9

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-2-5
在线时间
3 小时
发表于 2015-6-9 20:55:13 | 显示全部楼层 |阅读模式
5金钱
计量芯片获取A,B,C三相的电能消耗,A和C相能读出电压,电流和电能消耗,但是 B相却读不出电能消耗。图中调试窗口中的EP和Eq代表电能消耗,为啥A,C相都有数,而B相为0啊,读B相寄存器的地址也是没有问题的啊。B相Ep为0x1F,Eq为0x23。求大神帮忙啊!!!!




[mw_shl_code=c,true]void Read_ATT_BData(void) { BDataTypeDef.P[10]=SPI_ATT_ReadByte(r_Pb); BDataTypeDef.Q=SPI_ATT_ReadByte(r_Qb); BDataTypeDef.S=SPI_ATT_ReadByte(r_Sb); BDataTypeDef.URms[11]=SPI_ATT_ReadByte(r_URmsb); BDataTypeDef.IRms[11]=SPI_ATT_ReadByte(r_IRmsb); BDataTypeDef.Pf=SPI_ATT_ReadByte(r_Pfb); BDataTypeDef.Ep=SPI_ATT_ReadByte(r_Epb);//0X1F BDataTypeDef.Eq=SPI_ATT_ReadByte(r_Eqb);//0X23 if(BDataTypeDef.P[10]>0x800000) { BDataTypeDef.P[11]=0x1000000-BDataTypeDef.P[10]; BDataTypeDef.Rp[11]=(float)BDataTypeDef.P[11]/112; } else BDataTypeDef.Rp[11]=(float)BDataTypeDef.P[10]/112; //?ó?????? if(BDataTypeDef.Q>0x800000) { BDataTypeDef.Q=0x1000000-BDataTypeDef.Q; BDataTypeDef.Rq=(float)BDataTypeDef.Q/112; } else BDataTypeDef.Rq=(float)BDataTypeDef.Q/112; //?ó???????? BDataTypeDef.Rs=(float)BDataTypeDef.S/112; //?ó???????? BDataTypeDef.Rurms[11]=(float)BDataTypeDef.URms[11]/8192; //?ó???????§??(8192=2^13) BDataTypeDef.Rirms[11]=(float)BDataTypeDef.IRms[11]/8192/6; //?ó???÷???§??(????????????±???????N,N?ù???????é???ó??) BDataTypeDef.Ep=BDataTypeDef.Ep/EC; if(BDataTypeDef.Pf>0x800000) { BDataTypeDef.Pf=0x1000000-BDataTypeDef.Pf; BDataTypeDef.Rpf=(float)BDataTypeDef.Pf/8388608; } else BDataTypeDef.Rpf=(float)BDataTypeDef.Pf/8388608; //?ó?????ò??(8388608=2^23) }[/mw_shl_code]


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-6-9 22:41:06 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

5

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-3-9
在线时间
1 小时
发表于 2015-7-16 14:47:32 | 显示全部楼层
ATT7022E/26E/28E提供的能量寄存器可配置为: 累加型能量寄存器和清零型能量寄存器, 累加型
能量寄存器可以从0x000000到0xFFFFFF,继续累加,又回到0x000000开始累加,在0xFFFFFF溢出到
0x00000时,会产生溢出标志,参考电能寄存器工作状态寄存器部分说明。

电能寄存器工作状态寄存器部分说明:该寄存器可读后自动清零。当电能寄存器采用读后不清零方式时,这些标志用于指示电能寄存器是
否发生过溢出。

你可以去读电能寄存器工作状态寄存器(地址:0x1D,0x4E)看看是不是B相电能发生溢出了
我也是刚学 并不是很清楚 不知道说得对不对

学无止境
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 02:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表