本帖最后由 2sxy2 于 2017-8-25 21:29 编辑
Write_7022E(0xc9,0x005a); //校表数据写使能
delay();delay();delay();
Write_7022E(0xc5,0x0000); //停止同步采样,先停止再启动
delay();delay();delay();
Write_7022E(0xc5,0x0002); //开启同步采样,自动0x0002,手动0x0003
//while(SATflag<1022) //采样完成标志位存在硬件bug,不使用,直接等待50ms
// {delay();SATflag = Read_7022E(0x7E);printf("%d ",SATflag);}
delay_ms(50); //等待采样完成
Write_7022E(0xC1,0x0000); //重置数据读取指针,从0开始读取
for(i=0;i<1024;i++)
{
r_WaveBuff[i]=Read_7022E(0x7F); //将本次采样的1024个数据存入缓存空间
}
//进行Uc通道的谐波分析
for(i=0;i<64;i++) //分离Uc通道数据,7个数据一组,分别为Ua、Ub、Uc、Ia、Ib、Ic、In
{
Wave64[i]=r_WaveBuff[i*7+2];
//printf("%+d ",Wave64[i]);
}
大概步骤就是这样,做太久了没仔细看,有错误请指出。
发送一次 7F 命令,只能读回一个字节的数据,读取地址由7022从初始地址开始自动增加。初始地址由“Write_7022E(0xC1,0x0000); //重置数据读取指针,从0开始读取”决定。
读回的数据是7个通道混在一起的,即Ua、Ub、Uc、Ia、Ib、Ic、In、Ua、Ub、Uc、Ia、Ib、Ic、In.......所以要自己分离,才能做后面的FFT之类的处理。
|