4600|9

6

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教:ADC12 模块的问题,急!!! [复制链接]

A0results[index] = ADC12MEM0; // Move A0 results, IFG is cleared

A1results[index] = ADC12MEM1; // Move A1 results, IFG is cleared

A2results[index] = ADC12MEM2; // Move A2 results, IFG is cleared

A3results[index] = ADC12MEM3; // Move A3 results, IFG is cleared

index = (index+1)%Num_of_Results // Increment results index, modulo; Set Breakpoint here

这些指令是什么意思啊?我C学的不是很好,请各位高手指点一二!跪谢啊!

最新回复

学习,学习!~~  详情 回复 发表于 2011-7-8 10:07
 
点赞 关注

回复
举报

5015

帖子

12

TA的资源

裸片初长成(初级)

推荐
 

回复 6楼 小李啧 的帖子

不用谢,共同学习
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

沙发
 
没有完整的代码,根据以上这些代码我是这样理解的。
首先我猜测该ADC12模块使用了CONSEQx = 11的模式(A sequence of channels is converted repeatedly),也就是对多个通道连续采样。
就以上代码来看应该是4个通道,数组Axresults(x = 0,1,2,3)是用来存储每个通道的采样的数据。

[ 本帖最后由 wstt 于 2011-3-24 10:48 编辑 ]
 
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

板凳
 
Num_of_Results看不大清楚是什么意思,根据后面说的increment results index来看,那就是用来递增Index的,那我可以认为是采样的输出的通道数目即Num_of_Results = 4,当Index = 1的时候,进行index = (index+1)%Num_of_Results后Index=2((1+1)%4=2),
以此类推Index最大可递增到3,然后又变为0。所以可能该数组大小为4个你所定义的类型(unsigned int?)
 
 
 

回复

1282

帖子

10

TA的资源

五彩晶圆(初级)

4
 
楼上分析的不错。
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

5
 

回复 沙发 wstt 的帖子

#include "MSP430x14x.h" // Standard Equations

#define Num_of_Results 8

static unsigned int A0results[Num_of_Results]; // These need to be global in
static unsigned int A1results[Num_of_Results]; // this example. Otherwise, the
static unsigned int A2results[Num_of_Results]; // compiler removes them because they are not used

void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timer
P6SEL = 0x0F; // Enable A/D channel inputs
ADC12CTL0 = ADC12ON+MSC+SHT0_8; // Turn on ADC12, extend sampling time
// to avoid overflow of results
ADC12CTL1 = SHP+CONSEQ_3; // Use sampling timer, repeated sequence
ADC12MCTL0 = INCH_0; // ref+=AVcc, channel = A0
ADC12MCTL1 = INCH_1; // ref+=AVcc, channel = A1
ADC12MCTL2 = INCH_2+EOS; // ref+=AVcc, channel = A2, end seq.

ADC12IE = 0x08; // Enable ADC12IFG.3
ADC12CTL0 |= ENC; // Enable conversions
_EINT(); // Enable interrupts
ADC12CTL0 |= ADC12SC; // Start conversion
_BIS_SR(LPM0_bits); // Enter and stay in LPM0
}

#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
static unsigned int index = 0;

A0results[index] = ADC12MEM0; // Move A0 results, IFG is cleared
A1results[index] = ADC12MEM1; // Move A1 results, IFG is cleared
A2results[index] = ADC12MEM2; // Move A2 results, IFG is cleared
index = (index+1)%Num_of_Results; // Increment results index, modulo; Set Breakpoint here
}


谢谢啊!帮我看看,那几句我看了好多天....
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

6
 

回复 板凳 wstt 的帖子

真的很谢谢你的回复,听君一句话,胜看十天书啊!感恩!
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

7
 

回复 楼主 小李啧 的帖子

顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
 
 
 

回复

256

帖子

0

TA的资源

一粒金砂(高级)

9
 

回复 8楼 wstt 的帖子

版主不愧为版主,多多向你学习
 
个人签名追求卓越,成功就会在不经意间追上你
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

10
 
学习,学习!~~
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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