老大  你那个 V【I】 B【I】加在哪啊  初学者 不是很懂 求解释
点赞  2012-7-30 19:26

回复 21楼 sjc183609 的帖子

for(i=0;i<8;++i)
                 {
                         b【i】=0;
                         for(j=0;j<4;++j)
                         {
                                 b【i】+=a[i+j*8];
                         }
                 }
                 for(i=0;i<8;++i)
                 {
                         b【i】=b【i】/4;//取4次采样的平均
                         v【i】=b*25;
                         v【i】=(v【i】/1023)/10;//转化为电压值
                 }
这里,v与b都是数组
点赞  2012-7-30 19:57
那个老大在咨询下  你这个程序 是不是8路AD都采集信号,取平均值是不是把8路AD的电压都相加在处理啊?  b+=a[i+j*8];  这句话是不是理解为 B[I]里的数据是AD8路采集的电压 ?
点赞  2012-7-30 23:40
AD具体取出来的值在哪? 数组B里面怎么会有真正的数据呢?
点赞  2012-7-31 00:33
为什么这个程序不需要ADC10MEM  那AD转换出的数据在哪呢?
点赞  2012-7-31 00:45

回复 8楼 nlls1990 的帖子

这个我记得用户指南里面有提到过,说是当管脚用作IO口时,如果悬空,在没有输入输出的情况下,为了低功耗考虑,此时管脚上的值无关紧要。也就是说用作输入时如果没有输入,即管脚悬空,读入的值1.x V是无效的,当给输入时读入的既是输入值,那个1.x V不影响输入。经测试验证,确实如此。
点赞  2012-7-31 11:19
哥ADC10EA0不写不是应该关闭了模拟通道吗? 为什么还能进行AD?  还有INCH_7 不是选择通道7吗?   为什么是选择了A0到A7?
点赞  2012-7-31 13:46

回复 26楼 wzw134 的帖子

谢谢指教
点赞  2012-7-31 15:19
ADC10CTL0|=ADC10SC+ENC;//开始采样
                ADC10SA=(unsigned int )a;//将组数a的首地址作为采样的起始地址,首先是对P1^1通道采样32次,  放入数组a中,一次循环后再对P1^3采样32次,以此类推,向下循环

我想知道这个32次采样有没有时间间隔?是采一次放数组中一次还是采完全部放进去?如果我想间隔一定时间采样一次怎么修改?
点赞  2012-7-31 23:35

回复 23楼 sjc183609 的帖子

ADC10DTC1|=0X20;意味着八路通道一共采样32次,也就是说没路通道采集4次,  
b+=a[i+j*8];意思是b【8】这个数组中放的分别是八路通道4次采集的值的和,为下面求平均做的准备
点赞  2012-8-1 18:25

回复 25楼 sjc183609 的帖子

ADC10中有个DTC,它的作用是可以将得到的值自动进行传送(在CPU不工作的时候也可传送,这可以降低功耗),然后,值可以从ADC10SA中读取,这点不同于其他系列的ADC12
点赞  2012-8-1 18:28

回复 27楼 sjc183609 的帖子

ADC10AE0是通道使能位,在这里我为了方便LED灯的测试而关闭了它,在实际采集模拟量的时候是需要打开的,在序列通道采集中INCH的作用是指采集通道的最大值,而不是像单通道中所指定的某个特定的通道
点赞  2012-8-1 18:32

回复 29楼 dreamchaser09 的帖子

这里的ADC10DTC1|=0X20;是指一共采集32次,并不是对每一个通道采集32次,也就是说如果有8个通道,则平均下来每个通道采集4次,至于采样的时间控制,可以从2方面下手:1,ADC10的总周期,是由ADC10的采样时间+13个时钟周期,这里你可以改变ADC10SR来改变采样速率,同时也可对时钟进行分频,具体的时间是多少就要你自己去算了;2:可以设ADC10DTC1|=0x01,采一次读一次值,采一次换一个通道,那么你就可以在每次读完后到下一次采集时加上延时函数(就相当于变成多个单通道采集)
点赞  2012-8-1 18:45

回复 6楼 Domen 的帖子

为什么b【8】这个数组可以直接b+=a[i+j*8];呢?我不懂,
点赞  2012-8-1 19:16

回复 34楼 lothacking 的帖子

是b【i】+=a[i+j*8];这里有点东西没显示上去,抱歉
点赞  2012-8-1 19:19
明天试试第一种方法去~_~
点赞  2012-8-2 00:00
楼主,请问ADC10CLK的频率多少啊?
谣言止于智者,聊天止于呵呵
点赞  2012-8-2 11:19
还有个问题:如果我没有设置REFON+REF2_5V+SREF_1这三个寄存器,那么默认的参考电压是不是3.5v  ?
谣言止于智者,聊天止于呵呵
点赞  2012-8-2 11:24

回复 38楼 yujinjing13 的帖子

时钟设置的是子系统时钟,用的是DCOCLK振荡器,频率为1M,可以通过设置DCOCLK
来改变频率,不过不设置为内部参考电压,则默认为Vcc
点赞  2012-8-2 15:22

回复 19楼 寒雪剑91 的帖子

是哪里错了,能指出吗?
点赞  2012-8-2 20:45
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复