打印
[经验分享]

关于CD4051

[复制链接]
1489|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mx2海贼|  楼主 | 2015-1-13 14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
硬件设计中,用到多路AD采集。遇到问题是:
1,循环扫描8个通道的话,是否会影响AD采集的时间,AD的时序和那个扫描的时间应该不是和很好把握吧
2,还是直接用到哪个通道,直接控制A,B,C来选通就可以了?
附子函数
unsigned int CD4051_choose0(void)
{
   unsigned int i;
   set_A=0;
   set_C=0;
   set_B=0;
    i=0;
   return i;
}
unsigned int CD4051_choose1(void)
{
   unsigned int i;
   set_A=1;
   set_C=0;
   set_B=0;
    i=1;
   return i;
}
unsigned int CD4051_choose2(void)
{
   unsigned int i;
   set_A=0;
   set_C=0;
   set_B=1;
    i=2;
   return i;
}
unsigned int CD4051_choose3(void)
{
   unsigned int i;
   set_A=1;
   set_C=0;
   set_B=1;
    i=3;
   return i;
}
unsigned int CD4051_choose4(void)
{
   unsigned int i;
   set_A=0;
   set_C=1;
   set_B=0;
    i=4;
   return i;
}
unsigned int CD4051_choose5(void)
{
   unsigned int i;
   set_A=1;
   set_C=1;
   set_B=0;
    i=5;
   return i;
}
unsigned int CD4051_choose6(void)
{
   unsigned int i;
   set_A=0;
   set_C=1;
   set_B=1;
    i=6;
   return i;
}
unsigned int CD4051_choose7(void)
{
   unsigned int i;
   set_A=1;
   set_C=1;
   set_B=1;
    i=7;
   return i;
}
沙发
xygyszb| | 2015-1-28 08:30 | 只看该作者
这么多子函数,为什么不用“switch case ”来做呢?

使用特权

评论回复
板凳
quray1985| | 2015-1-29 11:54 | 只看该作者
选个多路的ad不行吗?

使用特权

评论回复
地板
ccw1986| | 2015-1-29 15:09 | 只看该作者
楼主找个多通道的ad吧

使用特权

评论回复
5
liyujie20221| | 2015-1-30 12:39 | 只看该作者
模拟开关挺好用的,我一直用了

使用特权

评论回复
6
datouyuan| | 2015-2-6 13:39 | 只看该作者
//返回-1,表示未改变通道
unsigned int CD4051_choose(unsigned int ch)
{
        if(ch>7) return (-1);
        if(ch&1) set_A=1;
        else set_A=0;
        if(ch&2) set_B=1;
        else set_B=0;
        if(ch&4) set_C=1;
        else set_C=0;
        return ch;
}
假如这3个IO口是连续的,可以通过表达式赋值,不用条件判断。

使用特权

评论回复
7
zlzhuimeng| | 2016-6-8 10:32 | 只看该作者
那些管脚 a,b,c。不都是输出的高低电平吗?

使用特权

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

本版积分规则

11

主题

18

帖子

0

粉丝