?? 5532ad.c
字號:
/********************************************************************************************************/
/* 名稱:SpiIni()*/
/* 功能:初始化SPI0,設(shè)置為主機*/
/* 說明:使用11.0592 MHz(Fosc)外接晶振,F(xiàn)cclk=(Fosc * 4)=44.2368 MHz*/
/* Fpclk=(Fcclk / 4) * 1=11.0592 MHz,設(shè)置S0PCCR=6,即SPI時鐘=1.8432 MHz(CS5532串行時鐘<2 MHz)*/
/* 入口參數(shù):無*/
/* 出口參數(shù):無*/
/* 全局變量:無*/
/* 調(diào)用函數(shù):無*/
/********************************************************************************************************/
void SpiIni(void)
{
// S0PCCR=0x06; /*設(shè)置SPI0時鐘頻率=1.8432 MHz*/
S0PCCR=0x20; /*設(shè)置SPI0時鐘頻率=0.6912 MHz*/
S0PCR=0x20; /*設(shè)置SPI0接口模式:第一時鐘采樣、SCK高有效、主模式、MSB在先,不中斷*/
}
/********************************************************************************************************/
/* 名稱:Spi_lz_SRByte()*/
/* 功能:向SPI0總線發(fā)送數(shù)據(jù)(力值采樣CS5532命令字節(jié))、或發(fā)送無效字節(jié)0x00以便讀取A/D值*/
/* 入口參數(shù):data 待發(fā)送的數(shù)據(jù)*/
/* 出口參數(shù):返回值為讀取的數(shù)據(jù)*/
/* 全局變量:無*/
/* 調(diào)用函數(shù):無*/
/*******************************************************************************************************/
uint8 Spi_lz_SRByte(uint8 data)
{
uint8 i;
IO0CLR=LZ_SEL; /*片選,采樣力值*/
for(i=0;i<8;i++)
{;}
S0PDR=data;
while(0==(S0PSR&0x80)) /*等待SPIF置位,即等待數(shù)據(jù)發(fā)送完畢*/
for(i=0;i<8;i++)
{;}
IO0SET=LZ_SEL;
return(S0PDR);
}
/*******************************************************************************************************
** 名稱:Spi_zx_SRByte()
** 功能:向SPI0總線發(fā)送數(shù)據(jù)(縱向引伸計采樣CS5532命令字節(jié)、或發(fā)送的無效字節(jié)0x00以便讀取A/D值)
** 入口參數(shù):data 待發(fā)送的數(shù)據(jù)
** 出口參數(shù):無
** 全局變量:無
** 調(diào)用函數(shù):無
********************************************************************************************************/
uint8 Spi_zx_SRByte(uint8 data)
{
uint8 i;
IO0CLR=ZXYSJ_SEL; /*片選,采樣縱向引伸計*/
for(i=0;i<8;i++)
{;}
S0PDR=data;
while(0==(S0PSR&0x80)) /*等待SPIF置位,即等待數(shù)據(jù)發(fā)送完畢*/
for(i=0;i<8;i++)
{;}
IO0SET=ZXYSJ_SEL;
return(S0PDR);
}
/*******************************************************************************************************
** 名稱:Spi_hx_SRByte()
** 功能:向SPI1總線發(fā)送數(shù)據(jù)(橫向引伸計采樣CS5532命令字節(jié)、或發(fā)送的無效字節(jié)0x00以便讀取A/D值)
** 入口參數(shù):data 待發(fā)送的數(shù)據(jù)
** 出口參數(shù):無
** 全局變量:無
** 調(diào)用函數(shù):無
********************************************************************************************************/
uint8 Spi_hx_SRByte(uint8 data)
{
uint8 i;
IO0CLR=HXYSJ_SEL; /*片選,采樣橫向引伸計*/
for(i=0;i<8;i++)
{;}
S0PDR=data;
while(0==(S0PSR&0x80)) /*等待SPIF置位,即等待數(shù)據(jù)發(fā)送完畢*/
for(i=0;i<8;i++)
{;}
IO0SET=HXYSJ_SEL;
return(S0PDR);
}
/*******************************************************************************************************
** 名稱:Lz_CS5532Reset()
** 功能:復(fù)位采樣力值的CS5532
** 入口參數(shù):無
** 出口參數(shù):無
** 全局變量:無
** 調(diào)用函數(shù):無
********************************************************************************************************/
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系統(tǒng)復(fù)位,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系統(tǒng)復(fù)位*/
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,并啟動力值連續(xù)轉(zhuǎn)換
** 入口參數(shù):無
** 出口參數(shù):無
** 全局變量:無
** 調(diào)用函數(shù):無
********************************************************************************************************/
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通道設(shè)置寄存器*/
// 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); /*啟動力值連續(xù)轉(zhuǎn)換*/
}
/*******************************************************************************************************
** 名稱:Zx_CS5532Reset()
** 功能:復(fù)位采樣縱向引伸計的CS5532
** 入口參數(shù):無
** 出口參數(shù):無
** 全局變量:無
** 調(diào)用函數(shù):無
********************************************************************************************************/
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系統(tǒng)復(fù)位,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系統(tǒng)復(fù)位*/
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,并啟動縱向引伸計連續(xù)轉(zhuǎn)換
** 入口參數(shù):無
** 出口參數(shù):無
** 全局變量:無
** 調(diào)用函數(shù):無
********************************************************************************************************/
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通道設(shè)置寄存器*/
// 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); /*啟動縱向引伸計連續(xù)轉(zhuǎn)換*/
}
/*******************************************************************************************************
** 名稱:Hx_CS5532Reset()
** 功能:復(fù)位采樣橫向引伸計的CS5532
** 入口參數(shù):無
** 出口參數(shù):無
** 全局變量:無
** 調(diào)用函數(shù):無
********************************************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -