打印

最近用TLC549做A/D~bit0总是0....盼指点

[复制链接]
1459|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aceice|  楼主 | 2008-11-17 14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//置IO口为高,输入状态
ADCOUT = 1;
SCLK = 0;
//启动转换
ADCCS = 0;
NOP();
//bit7不需要时钟
if(ADCOUT)
    rbyte = rbyte + 0x01;
else 
    rbyte = rbyte + 0x00;
rbyte = rbyte << 1;
//读取bit6~bit0
for(i = 0; i < 7; i++)
{
    SCLK = 1;
    NOP();
    //下降沿读取数据
    SCLK = 0;
    if(ADCOUT)
    rbyte = rbyte + 0x01;
    else 
    rbyte = rbyte + 0x00;
    rbyte = rbyte << 1;        
}
//需要第8个时钟
SCLK = 1;
NOP();
SCLK = 0;
//开始下次转换
ADCCS = 1;
--------------------------------------------------
完全按照datasheet时序要求来的,Vref+ = 4V;Vref- = 0;
是不是比较电压有关?

相关帖子

沙发
zhaoyu2005| | 2008-11-20 11:06 | 只看该作者

应该先移位再加

你先加后移位,最后移位当然是0了,还有从C语言看
else 
    rbyte = rbyte + 0x00;
有点多余,
不过不知道这样写是不是直接译成rlc 命令

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

374

主题

2182

帖子

0

粉丝