tlc2543 多通道选择 错误

我用TLC2543多通道AD测量时,数据出错,如A,B,C三个通道,单独测量正确分。但三个数据同时测量时候就出现错误,A的数据为B口数据,B口数据为C口数据,C口数据为A口数据,值都是正确的  这是怎么回事儿啊。
调用语句:
        int tem,tem1,tem2;

printk("tong dao 0  \n");
        tem=read2543(0x00);
mdelay(1000);
printk("tong dao 1  \n");
        tem1=read2543(0x10);
mdelay(1000);
printk("tong dao 2  \n");
        tem2=read2543(0x20);
mdelay(1000)
tlc读数据函数:
unsigned int read2543(unsigned char  port) //port is input pin-number
{
        unsigned int i,ad=0,j;
        int flag = 0;
        unsigned char temp,ch;
ch=port;
// printk("%x\n",ch);
        s3c2410_gpio_setpin(CLK,0);
        s3c2410_gpio_setpin(CS,0);
        //ch<<=4;
        for(i=0;i<12;i++)
                {
                        if(s3c2410_gpio_getpin(DPI))
                                ad|=0x01;
                       
                        if(ch&0x80)
                        s3c2410_gpio_setpin(DPO,1);
else
                        s3c2410_gpio_setpin(DPO,0);

                        s3c2410_gpio_setpin(CLK,1);
                         delay1(6);
                        s3c2410_gpio_setpin(CLK,0);
                         delay1(6);
                        ch<<=1;
                        ad<<=1;
 }
        s3c2410_gpio_setpin(CS,1);
        ad>>=1;
printk("ad=%d\n",ad);
        return(ad);

}


其实很简单了!就在外面多加一个
for(i=0;i<3;i++)
{
里面写colk和cs喽!还 有其他的!哈哈
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值