欢迎来到天天文库
浏览记录
ID:50220839
大小:27.59 KB
页数:4页
时间:2020-03-12
《功率测量芯片CS5460A的读写程序.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、CS5460.c#include"system.h"unsignedcharbuff[4],Irms,Vrms;//功率暂存器voidWrite_Cs5460_Byte(unsignedchartemp);voidWrite_Cs5460(unsignedchar*buff,unsignedcharn);unsignedcharRead_Cs5460_Byte();voidWrite_Cs5460_Byte(unsignedchartemp){unsignedchari;Cs5460_clk=0;for(i=0;i<8;i++)//循环8次写入数据{Cs5460_clk=0;Cs5
2、460_sdi=(temp&0x80)>>7;//每次传输高字节temp<<=1;//左移一位Cs5460_clk=1;}Cs5460_clk=0;}voidWrite_Cs5460(unsignedchar*buff,unsignedcharn){unsignedchari;Cs5460_cs=1;_delay(10);Cs5460_clk=0;_delay(10);Cs5460_cs=0;_delay(10);for(i=0;i3、}unsignedcharRead_Cs5460_Byte(){unsignedchari,tmp=0;for(i=0;i<8;i++)//循环8次写入数据{Cs5460_clk=0;_delay(2);第1页CS5460.cCs5460_clk=1;if(Cs5460_sdo)tmp4、=0x80>>i;//每次传输高字节//if(Cs5460_sdo)tmp5、=0x01;tmp<<1;}return(tmp);}voidRead_Cs5460(unsignedcharaddress,unsignedchar*buff){unsignedchari;//staticunsigned6、chartmp[4],k=0;Cs5460_cs=1;_delay(10);Cs5460_clk=0;_delay(10);Cs5460_cs=0;_delay(10);Write_Cs5460_Byte(address);Cs5460_sdi=1;for(i=0;i<3;i++){*(buff+i)=Read_Cs5460_Byte();}//tmp[k]=*(buff+1);Cs5460_clk=0;Cs5460_sdi=0;Cs5460_cs=1;}voidInit_Cs5460(){unsignedcharbuff[4];Cs5460_RET=0;//复位_delay(307、000);//30msCs5460_RET=1;buff[0]=0xff;//SYNC1buff[1]=0xff;//SYNC1buff[2]=0xff;//SYNC1buff[3]=0xfe;//SYNC0Write_Cs5460(buff,4);//写同步buff[0]=0x40;//写配置寄存器第2页CS5460.cbuff[1]=0x01;//GI=1电流通道增益=10buff[2]=0x18;//中断形式:00-高电平08-低电平10-下降沿18-上升沿buff[3]=0x01;//DCLK=MCLK/1Write_Cs5460(buff,4);buff[0]=0x5e;8、buff[1]=0xff;buff[2]=0xff;buff[3]=0xff;Write_Cs5460(buff,4);//清状态寄存器buff[0]=0x74;buff[1]=0xff;buff[2]=0xff;buff[3]=0xff;Write_Cs5460(buff,4);//写屏蔽中断寄存器buff[0]=0x78;buff[1]=0x00;buff[2]=0x00;buff[3]=0x00;Write_Cs5460(buff,4);//写控制寄存器buff[0]=0x4c;buff[1]=0x00;buff[2]=0x34;buff[3]=0x9c;Write_Cs549、60(buff,4);//写EOUT脉冲输出寄存器buff[0]=0x4A;buff[1]=0x00;buff[2]=0x01;buff[3]=0x90;//每秒计算10次,N=400Write_Cs5460(buff,4);//写CYCLECOUNT寄存器buff[0]=0x44;buff[1]=0x40;//增益1buff[2]=0x00;buff[3]=0x00;Write_Cs5460(buff,4);//写电流增益寄存器第3页CS5460.cbuff[0]=
3、}unsignedcharRead_Cs5460_Byte(){unsignedchari,tmp=0;for(i=0;i<8;i++)//循环8次写入数据{Cs5460_clk=0;_delay(2);第1页CS5460.cCs5460_clk=1;if(Cs5460_sdo)tmp
4、=0x80>>i;//每次传输高字节//if(Cs5460_sdo)tmp
5、=0x01;tmp<<1;}return(tmp);}voidRead_Cs5460(unsignedcharaddress,unsignedchar*buff){unsignedchari;//staticunsigned
6、chartmp[4],k=0;Cs5460_cs=1;_delay(10);Cs5460_clk=0;_delay(10);Cs5460_cs=0;_delay(10);Write_Cs5460_Byte(address);Cs5460_sdi=1;for(i=0;i<3;i++){*(buff+i)=Read_Cs5460_Byte();}//tmp[k]=*(buff+1);Cs5460_clk=0;Cs5460_sdi=0;Cs5460_cs=1;}voidInit_Cs5460(){unsignedcharbuff[4];Cs5460_RET=0;//复位_delay(30
7、000);//30msCs5460_RET=1;buff[0]=0xff;//SYNC1buff[1]=0xff;//SYNC1buff[2]=0xff;//SYNC1buff[3]=0xfe;//SYNC0Write_Cs5460(buff,4);//写同步buff[0]=0x40;//写配置寄存器第2页CS5460.cbuff[1]=0x01;//GI=1电流通道增益=10buff[2]=0x18;//中断形式:00-高电平08-低电平10-下降沿18-上升沿buff[3]=0x01;//DCLK=MCLK/1Write_Cs5460(buff,4);buff[0]=0x5e;
8、buff[1]=0xff;buff[2]=0xff;buff[3]=0xff;Write_Cs5460(buff,4);//清状态寄存器buff[0]=0x74;buff[1]=0xff;buff[2]=0xff;buff[3]=0xff;Write_Cs5460(buff,4);//写屏蔽中断寄存器buff[0]=0x78;buff[1]=0x00;buff[2]=0x00;buff[3]=0x00;Write_Cs5460(buff,4);//写控制寄存器buff[0]=0x4c;buff[1]=0x00;buff[2]=0x34;buff[3]=0x9c;Write_Cs54
9、60(buff,4);//写EOUT脉冲输出寄存器buff[0]=0x4A;buff[1]=0x00;buff[2]=0x01;buff[3]=0x90;//每秒计算10次,N=400Write_Cs5460(buff,4);//写CYCLECOUNT寄存器buff[0]=0x44;buff[1]=0x40;//增益1buff[2]=0x00;buff[3]=0x00;Write_Cs5460(buff,4);//写电流增益寄存器第3页CS5460.cbuff[0]=
此文档下载收益归作者所有