4126|10

17

帖子

1

TA的资源

一粒金砂(中级)

关于430g2553--ADC10的问题 [复制链接]

例1:用单通道重复采样模式对A1采样,将采样结果20次求平均,然后将结果存在变量ADC10_Result内。假设选择2分频后的ACLK做采样时钟,选择内部参考源           2.5V,ADC10SC触发采样,禁止ADC10中断,采样时间设置为64个采样时钟。
程序:
int ADC10_Result;
ADC10CTL1 |= CONSEQ_2; //单通道重复采样模式
ADC10CTL0 |= SREF_1+REFON+REF2_5V;//选择内部参考源2.5V,打开基准源
ADC10CTL0 |= ADC10SHT_3+MSC; //过采样率设置为64个采样周期,打开AD转换
ADC10CTL1|= ADC10SSEL_1+ADC10DIV_1+SHS_0; //ACLK2分频为采样时钟,用ADC10SC触发采集
ADC10CTL1 |=INCH_1; //选择通道A1
ADC10CTL0 |= ADC10ON; //开启ADC10
ADC10AE0 |= 0x02; //开启外部通道A1
for(int i=0;i<20;i++)
{
ADC10CTL0 |=ENC+ADC10SC; //开始转换
while((ADC10CTL0 &ADC10IFG)==0); //等待ADC10IFG标志变高(转换完成)
ADC10_Result+=ADC10MEM; //读取采样结果
}

ADC10_Result= ADC10_Result/20;
问题:
请问,在MSC=1的时候,ENC和ADC只要置过1,不就会自动取样转换了吗?为什么这个程序将其写在for循环内(每次都置1)?
而且自动取样转换,万一读取每次取样结果并处理取样结果的时间大于从这次转换完车到下一次转换完成的时间不就容易把下次的数据淹没吗?
求指教!万分感谢!

最新回复

对  详情 回复 发表于 2015-7-14 14:39

回复
举报

35

帖子

0

TA的资源

一粒金砂(中级)

ADC10CTL0 |=ENC+ADC10SC; //开始转换
上面这句话的意思是ADC转换开始,此时ADC的中断程序ISR被触发

while((ADC10CTL0 &ADC10IFG)==0); //等待ADC10IFG标志变高(转换完成)
ADC10 interrupt flag. This bit is set if ADC10MEM is loaded with a conversion result. It is automatically reset
when the interrupt request is accepted, or it may be reset by software. When using the DTC this flag is set
when a block of transfers is completed.这句话我觉得没必要,你是在等ADC10MEM载入值,个人觉得可以不要。

ADC10_Result+=ADC10MEM; //读取采样结果
读取采样结果可在ISR程序中使用,你要求平均值的话最好用数组或者指针来赋值。

点评

但是,由单通道重复采样的状态转移图看,当MSC=1,ENC=1的时候,并不需要手动再对ENC和ADC10SC置一了啊。采样转换是自动进行的啊。谢谢!  详情 回复 发表于 2015-7-14 09:27

回复

17

帖子

1

TA的资源

一粒金砂(中级)

msp430_now 发表于 2015-7-14 03:19
ADC10CTL0 |=ENC+ADC10SC; //开始转换
上面这句话的意思是ADC转换开始,此时ADC的中断程序ISR被触发

wh ...

但是,由单通道重复采样的状态转移图看,当MSC=1,ENC=1的时候,并不需要手动再对ENC和ADC10SC置一了啊。采样转换是自动进行的啊。谢谢!

回复

2548

帖子

0

TA的资源

五彩晶圆(初级)

你有没有想过,你第二个问题就是第一个问题的答案啊
捕获111.PNG



捕获222.PNG

点评

请问途中画粉色圆圈的部分,是不是还应该加上有ADC10SC=1或者是上升沿才能进入下一次转换? 而且,如果每次都写ADC10CTL|=ENC+ADC10SC;的话,感觉从流程图来看,单通道单次采样和多次采样也没有什么区别啊。 非常  详情 回复 发表于 2015-8-10 11:07

回复

2548

帖子

0

TA的资源

五彩晶圆(初级)

手册里还有一句话“The function of the ENC bit is unchanged when using the MSC bit.”

点评

哦,谢谢啦,又看了一下datasheet,感觉明白好多了。所以,其实每次只要将ADC10SC置一就可以了,而ENC没必要每次都置一,是吗?  详情 回复 发表于 2015-7-14 13:16

回复

17

帖子

1

TA的资源

一粒金砂(中级)

数码小叶 发表于 2015-7-14 11:13
手册里还有一句话“The function of the ENC bit is unchanged when using the MSC bit.”

哦,谢谢啦,又看了一下datasheet,感觉明白好多了。所以,其实每次只要将ADC10SC置一就可以了,而ENC没必要每次都置一,是吗?

点评

对  详情 回复 发表于 2015-7-14 14:39

回复

2548

帖子

0

TA的资源

五彩晶圆(初级)

doforfuture 发表于 2015-7-14 13:16
哦,谢谢啦,又看了一下datasheet,感觉明白好多了。所以,其实每次只要将ADC10SC置一就可以了,而ENC没 ...

点评

O(∩_∩)O谢谢  详情 回复 发表于 2015-7-14 21:17

回复

17

帖子

1

TA的资源

一粒金砂(中级)

O(∩_∩)O好的,谢谢!

回复

17

帖子

1

TA的资源

一粒金砂(中级)


回复

17

帖子

1

TA的资源

一粒金砂(中级)

数码小叶 发表于 2015-7-14 11:04
你有没有想过,你第二个问题就是第一个问题的答案啊

请问途中画粉色圆圈的部分,是不是还应该加上有ADC10SC=1或者是上升沿才能进入下一次转换?
而且,如果每次都写ADC10CTL|=ENC+ADC10SC;的话,感觉从流程图来看,单通道单次采样和多次采样也没有什么区别啊。
非常感谢!

点评

应该是这样(写的不详细)的,看ADC12的硬件图即可  详情 回复 发表于 2015-8-11 15:58

回复

17

帖子

1

TA的资源

一粒金砂(中级)

doforfuture 发表于 2015-8-10 11:07
请问途中画粉色圆圈的部分,是不是还应该加上有ADC10SC=1或者是上升沿才能进入下一次转换?
而且,如果 ...

应该是这样(写的不详细)的,看ADC12的硬件图即可

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 4

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表