新手上路
- 积分
- 39
- 金钱
- 39
- 注册时间
- 2016-10-23
- 在线时间
- 7 小时
|

楼主 |
发表于 2017-3-30 21:52:22
|
显示全部楼层
本帖最后由 ShuaiGuo 于 2017-4-6 10:06 编辑
经过几天的查询和测试已经解决啦,同步缓存测试程序如下,希望对想学ATT7022E谐波分析有用/******************************************************************
函数功能:7022E同步数据缓存
*****************************************************************/
void ATT7022E_tongbu()
{
int i;
u8 a=0,b=0,c=0,d=0,e=0,f=0,g=0;
WriteSpi(0xC9,0x00005A);//校表数据写使能
WriteSpi(0xC5,0x000000);//关闭同步数据缓存
WriteSpi(0xC5,0x000002);//开启自动同步数据缓存
while(Ptr<=1021)
{
delay_ms(50);
Ptr=ReadSpi(r_PtrWavebuff);//读缓存寄存器数据,读完一次数据自动加一
}
WriteSpi(0xC1,0x000000);//写入读取初始地址
for(i=0;i<1022;i++)
{
switch(i%7)
{
case 0:Ua[a++]=ReadSpi(r_WaveBuff);break;//读缓存寄存器中Ua数据
case 1:Ub[b++]=ReadSpi(r_WaveBuff);break;//读缓存寄存器中Ub数据
case 2:Uc[c++]=ReadSpi(r_WaveBuff);break;//读缓存寄存器中Uc数据
case 3:Ia[d++]=ReadSpi(r_WaveBuff);break;//读缓存寄存器中Ia数据
case 4:Ib[e++]=ReadSpi(r_WaveBuff);break;//读缓存寄存器中Ib数据
case 5:Ic[f++]=ReadSpi(r_WaveBuff);break;//读缓存寄存器中Ic数据
case 6:I0[g++]=ReadSpi(r_WaveBuff);break;//读缓存寄存器中I0数据
default:break;
}
}
WriteSpi(0xC9,0x000000);//校表数据关闭写使能
}
|
|