Post Go back to editing

ade7880获取不同相位的电压和电压之间的相角,以及不同相位的电流和电流之间的相角,只有ANGLE0有数值,ANGLE1和ANGLE2数值都为0,相电流之间也是这样。急盼专家的解答

大侠,你好,

尝试读取寄存器0xE601/0xE602/0xE603(即ANGLE0/ANGLE1/ANGLE2)的时候,发现这三个寄存器的值,总是为0。

不知道原因。请解,谢谢。

【我的情况】我期望得到不同相位的电压和电压之间的相角,以及不同相位的电流和电流之间的相角,看到中文版ade7880的p32页, ,COMPMODE的bit10:bit9=01,测量不同相位的电压和电压之间的延迟。COMPMODE的bit10:bit9=10,测量相电流之间的角度。

请问为什么我读取相电压之间的值,只有ANGLE0有数值,ANGLE1和ANGLE2数值都为0,相电流之间也是这样。问题困扰好久了,项目无进展,急盼专家的解答。什么原因啊?我的设置如下:

void ANGLE_celiang_A_UI(u16 addd)
{
u16 ANGLE_shu;
ANGLE_shu=read16(COMPMODE);
ANGLE_shu&=0xf9ff;
ANGLE_shu|=addd; //ANGLESEL[1:0][10-9] 00: 测量相电压和相电流之间的角度。
write16(COMPMODE,ANGLE_shu);
}

ANGLE_celiang_A_UI(0x0200); //0-01-0

ANGLE0_shu0=read16(ANGLE0); // AC ANGLE0---时间延迟0。详情参见相位时间间隔部分。


ANGLE_celiang_A_UI(0x0200); //0-01-0
ANGLE0_shu1=read16(ANGLE1); // BC


ANGLE_celiang_A_UI(0x0200); //0-01-0
ANGLE0_shu2=read16(ANGLE2);

printf("测试相角A,B,C------ %0.4f, %0.4f, %0.4f, ------------------------------\r\n\r\n",ANGLE0_shu0,ANGLE0_shu1,ANGLE0_shu2);

数据打印出来,只有ANGLE0有数值,ANGLE1和ANGLE2数值都为0,什么原因啊?麻烦指导一下。谢谢!

Thread Notes