功能:从SPI 总线读取1 个字节的数据
返回:
读取到的数据
*/
char ZLG7289_SPI_Read() reentrant
{
char dat;
unsigned char t = 8;
ZLG7289_pinDIO = 1; //读取数据之前DIO 引脚要置1 以切换到输入状态
do
{
ZLG7289_pinCLK = 1;
ZLG7289_ShortDelay();
dat <<= 1;
if ( ZLG7289_pinDIO ) dat++;////串口读数
ZLG7289_pinCLK = 0;
ZLG7289_ShortDelay();
} while ( --t != 0 );
return dat;
}
////////////////////////////////////////////////////////
/*
函数:ZLG7289_cmd()
功能:执行ZLG7289 纯指令
参数:
cmd:命令字
*/
void ZLG7289_cmd(char cmd)
{
char sav = IE;
IE &= 0xFA; //关闭外部中断
ZLG7289_pinCS = 0;
ZLG7289_LongDelay();
ZLG7289_SPI_Write(cmd);
ZLG7289_pinCS = 1;
ZLG7289_LongDelay();
IE = sav; //恢复IE
}
//////////////////////////////////////////////////////////
void ZLG7289_cmd0(char cmd)
{
char sav = IE;
IE &= 0xFA; //关闭外部中断
ZLG7289_pinCS0 = 0;
ZLG7289_LongDelay();
ZLG7289_SPI_Write(cmd);
ZLG7289_pinCS0 = 1;
ZLG7289_LongDelay();
IE = sav; //恢复IE
}
//////////////////////////////////////////
/*
函数:ZLG7289_cmd_dat()
功能:执行ZLG7289 带数据指令
参数:
cmd:命令字
dat:数据
*/
void ZLG7289_cmd_dat(char cmd, char dat)
{
char sav = IE;
IE &= 0xFA; //关闭外部中断
ZLG7289_pinCS = 0;
ZLG7289_LongDelay();
ZLG7289_SPI_Write(cmd);
ZLG7289_LongDelay();
ZLG7289_SPI_Write(dat);
ZLG7289_pinCS = 1;
ZLG7289_LongDelay();
IE = sav; //恢复IE
}
///////////////////////////////////////////////
void ZLG7289_cmd_dat0(char cmd, char dat)
{
char sav = IE;
IE &= 0xFA; //关闭外部中断
ZLG7289_pinCS0 = 0;
ZLG7289_LongDelay();
ZLG7289_SPI_Write(cmd);
ZLG7289_LongDelay();
ZLG7289_SPI_Write(dat);
ZLG7289_pinCS0 = 1;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-39167-43.html
大发
想得美台独
只是认得崇洋媚外的心理在作怪