初级会员

- 积分
- 95
- 金钱
- 95
- 注册时间
- 2017-9-11
- 在线时间
- 31 小时
|

楼主 |
发表于 2017-9-28 09:55:54
|
显示全部楼层
原子哥,我这边续写程序都没有问题,只能读取电流,其他读不了。感觉问题就在校表程序里,查不出原因所在,你给看一下,下面是校表程序
void EMU_init(void)
{
REST_0;
delay(30);
REST_1;
delay(2);
att7022eu_Write(0xC3,0x000000);
att7022eu_Write(0xc9,0x00005A);
att7022eu_Write(0x01,0xF87E);
att7022eu_Write(0x03,0xF884);
att7022eu_Write(0x31,0x3437);
att7022eu_Write(0x02,0x0100);
att7022eu_Write(0x1E,0x0210);
att7022eu_Write(0x1D, 0x9D);
att7022eu_Write(0x6D, 0xFF00);
att7022eu_Write(0x6E, 0x0DB8);
att7022eu_Write(0x6F, 0xD1DA);
att7022eu_Write(0x04,0);
att7022eu_Write(0x05,0);
att7022eu_Write(0x06,0);
att7022eu_Write(0x07,0);
att7022eu_Write(0x08,0);
att7022eu_Write(0x09,0);
att7022eu_Write(0x0A,0);
att7022eu_Write(0x0B,0);
att7022eu_Write(0x0C,0);
att7022eu_Write(0x0D,0);
att7022eu_Write(0x0E,0);
att7022eu_Write(0x0F,0);
att7022eu_Write(0x17,0);
att7022eu_Write(0x18,0);
att7022eu_Write(0x19,0);
att7022eu_Write(0x1A,0);
att7022eu_Write(0x1B,0);
att7022eu_Write(0x1C,0);
att7022eu_Write(0x35,0x080F);
att7022eu_Write(0xC5,0x000002);
att7022eu_Write(0xc9,0x000000);
att7022eu_Write(0xC6,0x000000);
}
下面是读取电压、电流和温度值的函数
void InitAmmeter(void)
{
//***************************读温度值********************************
TM=att7022eu_Read(0x2A);
delay(1);
if(TM>128)
{
TMM=TM*10-256;
}
else
TMM=TM*10;
TP=400-(0.726*TMM);
delay(1);
//***********************读取电流值*******************************
CurrA=att7022eu_Read(0x10);
Ia=(CurrA/8192)*10/60;
delay(1);
CurrB=att7022eu_Read(0x11);
Ib=(CurrB/8192)*10/60;
delay(1);
CurrC=att7022eu_Read(0x12);
Ic=(CurrC/8192)*10/60;
delay(1);
CurrIt=att7022eu_Read(0x13);
It=(CurrIt/4096)*10/60;
delay(1);
//***********************读取电压值*******************************
VolA=att7022eu_Read(0x0D);
Ua=(VolA*10)/8192;
delay(1);
VolB=att7022eu_Read(0x0E);
Ub=(VolB*10)/8192;
delay(1);
VolC=att7022eu_Read(0x0F);
Uc=(VolC*10)/8192;
delay(1);
VolUt=att7022eu_Read(0x2B);
Ut=(VolUt*10)/4096;
delay(1);
}
|
|