大侠,你好,
尝试读取寄存器0xE601/0xE602/0xE603(即ANGLE0/ANGLE1/ANGLE2)的时候,发现这三个寄存器的值,总是为0。
不知道原因。请解,谢谢。
【我的情况】我期望得到同一个相位的电压和电流之间的相角,看到中文版ade7880的p32页,默认情况下,COMPMODE的bit10:bit9=00,测量同一个相位的电压和电流之间的延迟。所以,我没有做初始化。
大侠,你好,
尝试读取寄存器0xE601/0xE602/0xE603(即ANGLE0/ANGLE1/ANGLE2)的时候,发现这三个寄存器的值,总是为0。
不知道原因。请解,谢谢。
【我的情况】我期望得到同一个相位的电压和电流之间的相角,看到中文版ade7880的p32页,默认情况下,COMPMODE的bit10:bit9=00,测量同一个相位的电压和电流之间的延迟。所以,我没有做初始化。
The ANGLE0, ANGLE1, and ANGLE2 registers are 16-bit unsigned registers with 1 LSB corresponding to 3.90625 μs (256 kHz clock), which means a resolution of 0.0703° (360° × 50 Hz/256 kHz) for 50 Hz systems and 0.0843° (360° × 60 Hz/
φx = cos⎥⎦⎤⎢⎣⎡××kHz256360LINEfANGLExo (6)
fLINE = 50 Hz or 60 Hz.
这些信息都在数据手册最显眼的地方,以后要选看数据手册。
请问为什么我读取相电压之间的值,只有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,什么原因啊?麻烦指导一下。谢谢!
请问为什么我读取相电压之间的值,只有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,什么原因啊?麻烦指导一下。谢谢!