[AVR单片机] Atmega8 I2C控制器 read读取16位数据子函数

[复制链接]
4381|8
 楼主| 轻轻电子 发表于 2013-9-27 14:55 | 显示全部楼层 |阅读模式
本帖最后由 轻轻电子 于 2013-9-27 14:57 编辑

用的是16位A/D ADS1110  读取数据高八位AD_H与低八位AD_L   
用的是ATmega16开发板里的程序只是读八位数据  我改了一下先读高八位 再读低八位  但是低八位数据读取不了
///////////////////////////////////////////////111111
    //
    //Wait();
    if(TestAck()!=MR_DATA_NOACK)
    return 1;      //ACK
    AD_L=TWDR;//读取I2C接收数据                                      
///////////////////////////////////////////////222222
    //
       Stop();//I2C停止
    return 177;
   
}


末尾////   //
    //Wait();
    if(TestAck()!=MR_DATA_NOACK)
    return 1;      //ACK
    AD_L=TWDR;//读取I2C接收数据      注释 //111111到//222222这部分是自己写的

只能读取高八位数据 不能读取低八位数据  怎样才能读取低八位数据呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
airwill 发表于 2013-10-3 14:56 | 显示全部楼层
这就得遵守 ADS1110  的读写规则了.
huangxz 发表于 2013-10-3 22:31 | 显示全部楼层
为啥说不能读取,你程序上有的啊
qin552011373 发表于 2013-10-4 08:28 | 显示全部楼层
建议仔细看看你用的那个AD的datasheet
 楼主| 轻轻电子 发表于 2013-10-5 16:16 | 显示全部楼层
恩 我再看看
 楼主| 轻轻电子 发表于 2013-10-6 15:11 | 显示全部楼层
qin552011373 发表于 2013-10-4 08:28
建议仔细看看你用的那个AD的datasheet

ATmega8的TWI传数据可以连续读取数据吗
我现在试了 有低八位数据但全为高电平  而且无论读取高八位数据后怎样操作 读高八位数据后都产生的的是非应答
JasonWangSE 发表于 2013-10-22 19:02 | 显示全部楼层
读高8位后的ACK是要由主发送的,即读完高8位,单片机应该发一个ACK,然后读低8位,然后再发NACK,然后再发STOP
2396822329 发表于 2015-3-28 23:33 | 显示全部楼层
楼主 请问你的问题解决没?我也遇到这种情况le
allance 发表于 2019-4-23 21:34 来自手机 | 显示全部楼层
我也遇到了一样的情况,跪求解决方法,我的qq284708212,十分感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部