关于pcf8591和iic协议使用时的问题,希望各位大神能够帮忙解答一下疑惑
时间:10-02
整理:3721RD
点击:
uchar read(uchar ch )
{
uchar temp=0;
iic_start();
iic_writebyte(0x90) /*确认芯片*/
if(ack==0)return(0);
//iic_respons(); /*IIC的应答函数*/
iic_writebyte(0x00|ch); /*确认通道*/
iic_respons();
//读出数据,放进temp
iic_start();
iic_writebyte(0x91);
if(ack==0)return(0);
//iic_respons(); /*如果采用iic_respons(),而不要if(ack==0)return(0),则显示是从0001开始,而不是0000*/
temp=readbyte();
NoAck_I2c();
iic_stop();
return temp;
}
为什么在调用完iic_writebyte函数以后,不写if(ack==0)return(0),而改用iic_respons()函数,ad转换值显示是从1开始,而不是从零开始?
{
uchar temp=0;
iic_start();
iic_writebyte(0x90) /*确认芯片*/
if(ack==0)return(0);
//iic_respons(); /*IIC的应答函数*/
iic_writebyte(0x00|ch); /*确认通道*/
iic_respons();
//读出数据,放进temp
iic_start();
iic_writebyte(0x91);
if(ack==0)return(0);
//iic_respons(); /*如果采用iic_respons(),而不要if(ack==0)return(0),则显示是从0001开始,而不是0000*/
temp=readbyte();
NoAck_I2c();
iic_stop();
return temp;
}
为什么在调用完iic_writebyte函数以后,不写if(ack==0)return(0),而改用iic_respons()函数,ad转换值显示是从1开始,而不是从零开始?
这个具体的你应该看8951的芯片手册,手册上说的很明白
万水千山总是情,打个酱油行不行.我给你的不是海誓山盟,
而是一颗不变的心!小编可以参考一下。
http://www.taiheth.com
http://www.dgkjly.com
http://www.jinluodz.com
http://www.konuaer.com
http://www.kangbidz.com
根据时序图