⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5532ad.c

📁 CS5532初始化代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/********************************************************************************************************/
/* 名称:SpiIni()*/
/* 功能:初始化SPI0,设置为主机*/
/* 说明:使用11.0592 MHz(Fosc)外接晶振,Fcclk=(Fosc * 4)=44.2368 MHz*/
/*		 Fpclk=(Fcclk / 4) * 1=11.0592 MHz,设置S0PCCR=6,即SPI时钟=1.8432 MHz(CS5532串行时钟<2 MHz)*/
/* 入口参数:无*/
/* 出口参数:无*/
/* 全局变量:无*/
/* 调用函数:无*/
/********************************************************************************************************/
void SpiIni(void)
{
//	S0PCCR=0x06;			/*设置SPI0时钟频率=1.8432 MHz*/
	S0PCCR=0x20;			/*设置SPI0时钟频率=0.6912 MHz*/
	
	S0PCR=0x20;				/*设置SPI0接口模式:第一时钟采样、SCK高有效、主模式、MSB在先,不中断*/
}
/********************************************************************************************************/
/* 名称:Spi_lz_SRByte()*/
/* 功能:向SPI0总线发送数据(力值采样CS5532命令字节)、或发送无效字节0x00以便读取A/D值*/
/* 入口参数:data	待发送的数据*/
/* 出口参数:返回值为读取的数据*/
/* 全局变量:无*/
/* 调用函数:无*/
/*******************************************************************************************************/
uint8 Spi_lz_SRByte(uint8 data)
{
	uint8	i;
	IO0CLR=LZ_SEL;				/*片选,采样力值*/
	for(i=0;i<8;i++)
	{;}
	S0PDR=data;
	while(0==(S0PSR&0x80))		/*等待SPIF置位,即等待数据发送完毕*/
	for(i=0;i<8;i++)
	{;}
	IO0SET=LZ_SEL;
	return(S0PDR);
}
/*******************************************************************************************************
** 名称:Spi_zx_SRByte()
** 功能:向SPI0总线发送数据(纵向引伸计采样CS5532命令字节、或发送的无效字节0x00以便读取A/D值)
** 入口参数:data	待发送的数据
** 出口参数:无
** 全局变量:无
** 调用函数:无
********************************************************************************************************/
uint8 Spi_zx_SRByte(uint8 data)
{
	uint8	i;
	IO0CLR=ZXYSJ_SEL;			/*片选,采样纵向引伸计*/
	for(i=0;i<8;i++)
	{;}
	S0PDR=data;
	while(0==(S0PSR&0x80))		/*等待SPIF置位,即等待数据发送完毕*/
	for(i=0;i<8;i++)
	{;}
	IO0SET=ZXYSJ_SEL;
	return(S0PDR);
}
/*******************************************************************************************************
** 名称:Spi_hx_SRByte()
** 功能:向SPI1总线发送数据(横向引伸计采样CS5532命令字节、或发送的无效字节0x00以便读取A/D值)
** 入口参数:data	待发送的数据
** 出口参数:无
** 全局变量:无
** 调用函数:无
********************************************************************************************************/
uint8 Spi_hx_SRByte(uint8 data)
{
	uint8	i;
	IO0CLR=HXYSJ_SEL;				/*片选,采样横向引伸计*/
	for(i=0;i<8;i++)
	{;}
	S0PDR=data;
	while(0==(S0PSR&0x80))		/*等待SPIF置位,即等待数据发送完毕*/
	for(i=0;i<8;i++)
	{;}
	IO0SET=HXYSJ_SEL;
	return(S0PDR);
}
/*******************************************************************************************************
** 名称:Lz_CS5532Reset()
** 功能:复位采样力值的CS5532
** 入口参数:无
** 出口参数:无
** 全局变量:无
** 调用函数:无
********************************************************************************************************/
void Lz_CS5532Reset(void)
{
	uint8	i,rd0,rd1;
	for(i=0;i<16;i++)				/*力值5532初始化序列*/
		{
		 rd0=Spi_lz_SRByte(0xff);
		}
	rd0=Spi_lz_SRByte(0xfe);

	rd0=Spi_lz_SRByte(0x03);		/*力值5532系统复位,RS=1,写配置寄存器*/
	rd0=Spi_lz_SRByte(0x20);
	rd0=Spi_lz_SRByte(0x00);
	rd0=Spi_lz_SRByte(0x00);
	rd0=Spi_lz_SRByte(0x00);

	for(i=0;i<255;i++)
	{;}	
	rd0=0x00;						/*等待力值5532系统复位*/
	while(0==(rd0&0x10))			/*RV=0?*/
		{rd0=Spi_lz_SRByte(0x0b);
		 rd0=Spi_lz_SRByte(0x00);
		 rd1=Spi_lz_SRByte(0x00);
		 rd1=Spi_lz_SRByte(0x00);
		 rd1=Spi_lz_SRByte(0x00);
		 }
}
/*******************************************************************************************************
** 名称:Lz_CS5532Ini()
** 功能:初始化采样力值的CS5532,并启动力值连续转换
** 入口参数:无
** 出口参数:无
** 全局变量:无
** 调用函数:无
********************************************************************************************************/
void Lz_CS5532Ini(void)
{
	uint8	rd0;
	rd0=Spi_lz_SRByte(0x03);		/*初始化力值5532配置寄存器*/
	rd0=Spi_lz_SRByte(0x00);
	rd0=Spi_lz_SRByte(0x40);
	rd0=Spi_lz_SRByte(0x00);
	rd0=Spi_lz_SRByte(0x00);

//	rd0=Spi_lz_SRByte(0x03);		/*初始化力值5532配置寄存器:VREF=2.5V*/
//	rd0=Spi_lz_SRByte(0x02);
//	rd0=Spi_lz_SRByte(0x40);
//	rd0=Spi_lz_SRByte(0x00);
//	rd0=Spi_lz_SRByte(0x00);

	
	rd0=Spi_lz_SRByte(0x05);		/*初始化力值5532通道设置寄存器*/
//	rd0=Spi_lz_SRByte(0x34);		/*物理通道1、64倍增益、1920Hz字速率*/
//	rd0=Spi_lz_SRByte(0xc0);		/*单极性模式、物理通道1、64倍增益、1920Hz字速率*/
//	rd0=Spi_lz_SRByte(0x34);
//	rd0=Spi_lz_SRByte(0xc0);		/*单极性模式*/
	
//	rd0=Spi_lz_SRByte(0x34);		/*物理通道1、64倍增益、1920Hz字速率*/
//	rd0=Spi_lz_SRByte(0x80);		/*双极性模式、物理通道1、64倍增益、1920Hz字速率*/
//	rd0=Spi_lz_SRByte(0x34);
//	rd0=Spi_lz_SRByte(0x80);		/*双极性模式*/
	
//	rd0=Spi_lz_SRByte(0x30);		/*物理通道1、64倍增益、120Hz字速率*/
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式、物理通道1、64倍增益、120Hz字速率*/
//	rd0=Spi_lz_SRByte(0x30);
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式*/

//	rd0=Spi_lz_SRByte(0x30);		/*物理通道1、64倍增益、60Hz字速率*/
//	rd0=Spi_lz_SRByte(0x80);		/*双极性模式、物理通道1、64倍增益、60Hz字速率*/
//	rd0=Spi_lz_SRByte(0x30);
//	rd0=Spi_lz_SRByte(0x80);		/*双极性模式*/

//	rd0=Spi_lz_SRByte(0x31);		/*物理通道1、64倍增益、30Hz字速率*/
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式、物理通道1、64倍增益、30Hz字速率*/
//	rd0=Spi_lz_SRByte(0x31);
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式*/

	rd0=Spi_lz_SRByte(0x31);		/*物理通道1、64倍增益、15Hz字速率*/
	rd0=Spi_lz_SRByte(0x80);		/*双极性模式、物理通道1、64倍增益、15Hz字速率*/
	rd0=Spi_lz_SRByte(0x31);
	rd0=Spi_lz_SRByte(0x80);		/*双极性模式*/

//	rd0=Spi_lz_SRByte(0x32);		/*物理通道1、64倍增益、7.5Hz字速率*/
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式、物理通道1、64倍增益、7.5Hz字速率*/
//	rd0=Spi_lz_SRByte(0x32);
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式*/
	
//  rd0=Spi_lz_SRByte(0x1a);		/*物理通道1、8倍增益、7.5Hz字速率*/
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式、物理通道1、8倍增益、7.5Hz字速率*/
//	rd0=Spi_lz_SRByte(0x1a);
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式*/
	
//	rd0=Spi_lz_SRByte(0x21);		/*物理通道1、16倍增益、15Hz字速率*/
//	rd0=Spi_lz_SRByte(0x80);		/*双极性模式、物理通道1、16倍增益、15Hz字速率*/
//	rd0=Spi_lz_SRByte(0x21);
//	rd0=Spi_lz_SRByte(0x80);		/*双极性模式*/
	
//	rd0=Spi_lz_SRByte(0x22);		/*物理通道1、16倍增益、7.5Hz字速率*/
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式、物理通道1、16倍增益、7.5Hz字速率*/
//	rd0=Spi_lz_SRByte(0x22);
//	rd0=Spi_lz_SRByte(0x00);		/*双极性模式*/

	rd0=Spi_lz_SRByte(0xc0);		/*启动力值连续转换*/
}
/*******************************************************************************************************
** 名称:Zx_CS5532Reset()
** 功能:复位采样纵向引伸计的CS5532
** 入口参数:无
** 出口参数:无
** 全局变量:无
** 调用函数:无
********************************************************************************************************/
void Zx_CS5532Reset(void)
{
	uint8	i,rd0,rd1;
	for(i=0;i<16;i++)				/*纵向引伸计5532初始化序列*/
		{
		 rd0=Spi_zx_SRByte(0xff);
		}
	rd0=Spi_zx_SRByte(0xfe);

	rd0=Spi_zx_SRByte(0x03);		/*纵向引伸计5532系统复位,RS=1,写配置寄存器*/
	rd0=Spi_zx_SRByte(0x20);
	rd0=Spi_zx_SRByte(0x00);
	rd0=Spi_zx_SRByte(0x00);
	rd0=Spi_zx_SRByte(0x00);

	for(i=0;i<255;i++)
	{;}	
	rd0=0x00;						/*等待纵向引伸计5532系统复位*/
	while(0==(rd0&0x10))			/*RV=0?*/
		{rd0=Spi_zx_SRByte(0x0b);
		 rd0=Spi_zx_SRByte(0x00);
		 rd1=Spi_zx_SRByte(0x00);
		 rd1=Spi_zx_SRByte(0x00);
		 rd1=Spi_zx_SRByte(0x00);
		 }
}
/*******************************************************************************************************
** 名称:Zx_CS5532Ini()
** 功能:初始化采样纵向引伸计的CS5532,并启动纵向引伸计连续转换
** 入口参数:无
** 出口参数:无
** 全局变量:无
** 调用函数:无
********************************************************************************************************/
void Zx_CS5532Ini(void)
{
	uint8	rd0;
	rd0=Spi_zx_SRByte(0x03);		/*初始化纵向引伸计5532配置寄存器*/
	rd0=Spi_zx_SRByte(0x00);
	rd0=Spi_zx_SRByte(0x40);
	rd0=Spi_zx_SRByte(0x00);
	rd0=Spi_zx_SRByte(0x00);
	
//	rd0=Spi_zx_SRByte(0x03);		/*初始化纵向引伸计5532配置寄存器:VREF=2.5V*/
//	rd0=Spi_zx_SRByte(0x02);
//	rd0=Spi_zx_SRByte(0x40);
//	rd0=Spi_zx_SRByte(0x00);
//	rd0=Spi_zx_SRByte(0x00);


	rd0=Spi_zx_SRByte(0x05);		/*初始化纵向引伸计5532通道设置寄存器*/
//	rd0=Spi_zx_SRByte(0x34);		/*物理通道1、64倍增益、1920Hz字速率*/
//	rd0=Spi_zx_SRByte(0xc0);		/*单极性模式*/
//	rd0=Spi_zx_SRByte(0x34);
//	rd0=Spi_zx_SRByte(0xc0);
	
//	rd0=Spi_zx_SRByte(0x34);		/*物理通道1、64倍增益、1920Hz字速率*/
//	rd0=Spi_zx_SRByte(0x80);		/*双极性模式*/
//	rd0=Spi_zx_SRByte(0x34);
//	rd0=Spi_zx_SRByte(0x80);
	
//	rd0=Spi_zx_SRByte(0x30);		/*物理通道1、64倍增益、120Hz字速率*/
//	rd0=Spi_zx_SRByte(0x00);		/*双极性模式*/
//	rd0=Spi_zx_SRByte(0x30);
//	rd0=Spi_zx_SRByte(0x00);

//	rd0=Spi_zx_SRByte(0x30);		/*物理通道1、64倍增益、60Hz字速率*/
//	rd0=Spi_zx_SRByte(0x80);		/*双极性模式*/
//	rd0=Spi_zx_SRByte(0x30);
//	rd0=Spi_zx_SRByte(0x80);

//	rd0=Spi_zx_SRByte(0x31);		/*物理通道1、64倍增益、30Hz字速率*/
//	rd0=Spi_zx_SRByte(0x00);		/*双极性模式*/
//	rd0=Spi_zx_SRByte(0x31);
//	rd0=Spi_zx_SRByte(0x00);

	rd0=Spi_zx_SRByte(0x31);		/*物理通道1、64倍增益、15Hz字速率*/
	rd0=Spi_zx_SRByte(0x80);		/*双极性模式*/
	rd0=Spi_zx_SRByte(0x31);
	rd0=Spi_zx_SRByte(0x80);

//	rd0=Spi_zx_SRByte(0x32);		/*物理通道1、64倍增益、7.5Hz字速率*/
//	rd0=Spi_zx_SRByte(0x00);		/*双极性模式*/
//	rd0=Spi_zx_SRByte(0x32);
//	rd0=Spi_zx_SRByte(0x00);
	
//	rd0=Spi_zx_SRByte(0x1a);		/*物理通道1、8倍增益、7.5Hz字速率*/
//	rd0=Spi_zx_SRByte(0x00);		/*双极性模式*/
//	rd0=Spi_zx_SRByte(0x1a);
//	rd0=Spi_zx_SRByte(0x00);
	
//	rd0=Spi_zx_SRByte(0x21);		/*物理通道1、16倍增益、15Hz字速率*/
//	rd0=Spi_zx_SRByte(0x80);		/*双极性模式*/
//	rd0=Spi_zx_SRByte(0x21);
//	rd0=Spi_zx_SRByte(0x80);
	
//	rd0=Spi_zx_SRByte(0x22);		/*物理通道1、16倍增益、7.5Hz字速率*/
//	rd0=Spi_zx_SRByte(0x00);		/*双极性模式*/
//	rd0=Spi_zx_SRByte(0x22);
//	rd0=Spi_zx_SRByte(0x00);


	rd0=Spi_zx_SRByte(0xc0);		/*启动纵向引伸计连续转换*/
}
/*******************************************************************************************************
** 名称:Hx_CS5532Reset()
** 功能:复位采样横向引伸计的CS5532
** 入口参数:无
** 出口参数:无
** 全局变量:无
** 调用函数:无
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -