msp430f149 adc adc10 dtc模块有什么用处?adc10的哪几种采用模式必须使用dtc

MSP430进阶培训--MSP430F5529的使用与开发_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MSP430进阶培训--MSP430F5529的使用与开发
上传于||文档简介
&&t​i​在​线​培​训​中​心
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢msp430题库及答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
msp430题库及答案
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩14页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢后使用快捷导航没有帐号?
查看: 5842|回复: 13
关于MSP430F2XX系列ADC10的设置问题
在线时间28 小时
芯币123 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
假设用外部电压作为参考电压并且要采集A0-A2,A3为VREF-,A4为VeREF+则:
ADC10CTL0&&=&&SREF_7 +。。。+;
那么模拟输入使能ADC10AE0是不是应该写为:
ADC10AE0 = 0x1F
在线时间150 小时
威望4246 分
芯币2292 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4246, 距离下一级还需 1754 积分
五彩晶圆(中级), 积分 4246, 距离下一级还需 1754 积分
使能A0采样正确的代码应该是
ADC10AE0 = 0x01;
请参见Datasheet关于ADC10AE0的描述:
ADC10 analog enable. These bits enable the corresponding pin for analog
input. BIT0 corresponds to A0, BIT1 corresponds to A1, etc.
0 Analog input disabled
1 Analog input enabled、
在线时间28 小时
芯币123 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 沙发 Triton.zhang 的帖子
谢谢,:rose: :rose:
您说的这个我知道,可能我没表达明白,
这么说吧,P2.0-P2.7分别是A0-A7,现在用外部参考电压,也就是P2.3和P2.4,模拟使能是不是也要赋值?
上面说的A0-A2我也要用。这样一来我的ADC10AE0是不是应该等于0x1F?
还有一个问题,INCHx要不要对外部参考VeREF+/-进行设置呢?还是说只要设置好SREF_7,外部参考电压就无需转换了?
在线时间132 小时
威望166 分
TA的帖子TA的资源
一粒金砂(中级), 积分 166, 距离下一级还需 34 积分
一粒金砂(中级), 积分 166, 距离下一级还需 34 积分
是如你所说的吧 ,还有了 就是P2SEL也要选择0X1F 第二功能! INCHx是选择要测量信号的通道吧!SREF_7我搜了下没有这个寄存器!
这个真不用&
在线时间28 小时
芯币123 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 4楼 shirl 的帖子
在ADC10CTL0 中的后三位SREF0,1,2.不是寄存器。
灰常谢谢!试试看
在线时间150 小时
威望4246 分
芯币2292 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4246, 距离下一级还需 1754 积分
五彩晶圆(中级), 积分 4246, 距离下一级还需 1754 积分
纠正下楼主的一个错误.1.& MSP430F2XX系列的P2端口和ADC的端口有复用,一旦设置ADC10AE0.Y为高,就会切换该管脚为模拟输入,而不管P2SEL.x是什么值。
2. MSP430的参考可以由内部产生,也可以用外部的参考,设置 SREF_7就可以使能外部的正负参考.
3. p2.0-p2.7对应A0-A7的输入和参考。如果你既要a0-a2,又要用外部参考,就需要设置ADC10AE0 = 0x1F;楼主下次遇到这类问题可以参见MSP430的数据手册,以P2.3为例:
表中说得很清楚.
3. MCU虽然支持很多ADC采样通道,但实际上内部只有一个ADC模块,所以在ADC采样前,你需要选择是采样那个ADC的通道。这个由INCHx来完成。
4. 最后总结一下,如果楼主要使用外部参考来采样ADC,可以参见如下操作流程:
&& 1) 切换管脚的模拟功能,包括ADC的输入通道和参考对应的管脚
&& 2)使能外部参考,通过配置SREF来实现
 3)& ADC采样前通过设置INCHx来确定具体采样某个端口
Triton.zhang
本帖子中包含更多资源
才可以下载或查看,没有帐号?
在线时间28 小时
芯币123 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 6楼 Triton.zhang 的帖子
说的很好!强烈赞成!加QQ了,希望同意哈!
在线时间2178 小时
威望5992 分
芯币5455 枚
E金币376 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 5992, 距离下一级还需 8 积分
五彩晶圆(中级), 积分 5992, 距离下一级还需 8 积分
勤学苦练好同志,乐于助人活同志!
在线时间1 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
楼主,DS看的很细心啊,其实还可以采用 MSP430F2XX ADC10的DTC(数据传输控制)模块,当序列转换启动时,可以将采样值自动存入所需要的地址中(数组),具体可参考TI例程.
在线时间150 小时
威望4246 分
芯币2292 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4246, 距离下一级还需 1754 积分
五彩晶圆(中级), 积分 4246, 距离下一级还需 1754 积分
给一个DTU操作的例程给你参考
//******************************************************************************
//&&MSP430F21x2 Demo - ADC10, DTC Sample A0 64x, 1.5V, Repeat Single, DCO
//&&Description: Use DTC to sample A0 64 times with reference to internal 1.5v.
//&&Vref Software writes to ADC10SC to trigger sample burst. In Mainloop MSP430
//&&waits in LPM0 to save power until ADC10 conversion complete, ADC10_ISR(DTC)
//&&will force exit from LPM0 in Mainloop on reti. ADC10 internal
//&&oscillator times sample period (16x) and conversion (13x). DTC transfers
//&&conversion code to RAM 200h - 280h. P1.0 set at start of conversion burst,
//&&reset on completion.
//& && && && && & MSP430F21x2
//& && && && & -----------------
//& && && &/|\|& && && && &&&XIN|-
//& && && & | |& && && && && &&&|
//& && && & --|RST& && && & XOUT|-
//& && && && &|& && && && && &&&|
//& && &&&&---|P2.0/A0& && &P1.0|--&LED
//&&A. Dannenberg
//&&Texas Instruments Inc.
//&&December 2007
//&&Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.41A
//******************************************************************************
#include &msp430x21x2.h&
void main(void)
&&WDTCTL = WDTPW + WDTHOLD;& && && && && &&&// Stop WDT
&&ADC10CTL1 = CONSEQ_2;& && && && && && && &// Repeat single channel
&&ADC10CTL0 = SREF_1 + ADC10SHT_2 + MSC + REFON + ADC10ON + ADC10IE;
&&TACCR0 = 30;& && && && && && && && && && &// Delay to allow Ref to settle
&&TACCTL0 |= CCIE;& && && && && && && && &&&// Compare-mode interrupt
&&TACTL = TASSEL_2 + MC_1;& && && && && && &// TACLK = SMCLK, Up mode
&&__bis_SR_register(CPUOFF + GIE);& && && & // LPM0, TA0_ISR will force exit
&&TACCTL0 &= ~CCIE;& && && && && && && && & // Disable timer Interrupt
&&ADC10DTC1 = 0x40;& && && && && && && && & // 64 conversions
&&ADC10AE0 |= 0x01;& && && && && && && && & // P2.0 ADC option select
&&P1DIR |= 0x01;& && && && && && && && && & // Set P1.0 output
&&for (;;)
& & ADC10CTL0 &= ~ENC;
& & while (ADC10CTL1 & BUSY);& && && && && &// Wait if ADC10 core is active
& & ADC10SA = 0x200;& && && && && && && && &// Data buffer start
& & P1OUT |= 0x01;& && && && && && && && &&&// Set P1.0 LED on
& & ADC10CTL0 |= ENC + ADC10SC;& && && && & // Sampling and conversion start
& & __bis_SR_register(CPUOFF + GIE);& && &&&// LPM0, ADC10_ISR will force exit
& & P1OUT &= ~0x01;& && && && && && && && & // Clear P1.0 LED off
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
&&__bic_SR_register_on_exit(CPUOFF);& && &&&// Clear CPUOFF bit from 0(SR)
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TA0_ISR(void)
&&TACTL = 0;& && && && && && && && && && &&&// Clear Timer_A control registers
&&__bic_SR_register_on_exit(CPUOFF);& && &&&// Clear CPUOFF bit from 0(SR)
在线时间28 小时
芯币123 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 9楼 Aaron-meng 的帖子
我也很想用DTC模块啊,就是ADC10SA=0x200之后,数据处理和清除都不知道如何操作。
在线时间28 小时
芯币123 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 10楼 Triton.zhang 的帖子
这个P2SEL 不设置不知道可不可以,但是我设置了是可以的。
在线时间53 小时
威望146 分
芯币2629 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 146, 距离下一级还需 54 积分
一粒金砂(中级), 积分 146, 距离下一级还需 54 积分
回复 4楼 shirl 的帖子
这个真不用
在线时间53 小时
威望146 分
芯币2629 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 146, 距离下一级还需 54 积分
一粒金砂(中级), 积分 146, 距离下一级还需 54 积分
回复 6楼 Triton.zhang 的帖子
Powered by
逛了这许久,何不进去瞧瞧?msp430 ADC10单通道多次转换
msp430 ADC10单通道多次转换
发布: | 作者:-- | 来源: -- | 查看:704次 | 用户关注:
MSP430 ADC10单通道多次转换
#include&"msp430x22x4.h" #define&uchar&unsigned&char #define&uint&unsigned&int #define&LCDen&0X80;&&&&&&&
MSP430 ADC10单通道多次转换
#include&"msp430x22x4.h" #define&uchar&unsigned&char #define&uint&unsigned&int #define&LCDen&0X80;&&&&&&&//P3的高三位做控制线
#define&lcdrw&0X40; #define&lcdrs&0X20; void&delay(uint&z)&&&&&&&&&&&&&&&&&&&&&&&&&&//延时程序 { &&&&uint&x,y; &&&&for(x=z;x&0;x--) &&&&&&&&for(y=100;y&0;y--); } void&write_com(uchar&com)&&&&&&&&&&&&&&&&&&//写指令 { &&&&P3OUT&=~ &&&&P4OUT= &&&&delay(5); &&&&P3OUT&|=& &&&&delay(5); &&&&P3OUT&&=&~ } void&write_data(uchar&date)&&&&&&&&&&&&&&&&&//写数据 { &&&&P3OUT|= &&&&P4OUT= &&&&delay(5); &&&&P3OUT|= &&&&delay(5); &&&&P3OUT&&=&~ } void&init()&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//初始化 { &&&&P3OUT&&=&~ &&&&P3OUT&&=&~ &&&&write_com(0x38);//显示模式设置 &&&&write_com(0x0f);// &&&&write_com(0x06);// &&&&write_com(0x01);// &&&&write_com(0x80+0x00);// } &&&&&&&&uchar& &&&&&&&&uchar&&table[]=""; &&&&&&&&uint&dada[5]; &&&&&&&& &&&&&&&& volatile&float&ad_ void&main(&void&) { WDTCTL=WDTPW+WDTHOLD;&//关看门狗 BCSCTL1&=CALBC1_1MHz;&//设定DCO&为1MHZ DCOCTL&=CALBC1_1MHZ; P2SEL&=&0X01; P3SEL=0X00; P3DIR=0XFF; P3OUT=0X00; P4SEL=0X00; P4DIR=0XFF; P4OUT=0X00; init(); //时钟源选AD&内部时钟并4&分频,选通道10,AD&启动信号来源选TA.OUT1,选单通道连续采样 ADC10CTL1=ADC10DIV_3+INCH_0+SHS_1+CONSEQ_2; //选1.5V&为正向参考,地为负参考,AD&中断使能,打开参考,启动AD&模块(不是启动AD&转换) ADC10CTL0=SREF_1+ADC10SHT_3+ADC10IE+REFON+ADC10ON+REF2_5V; TACCR0=30;&//延时等待参考稳定 TACCTL0&|=CCIE;&//CCR0&中断使能 TACTL=TACLR+MC_1+TASSEL_2;&//TA&增计数,时钟源为smclk _BIS_SR(LPM0_bits+GIE);&//进入低功耗0,使能总中断,等待参考稳定 TACCTL0&&=~CCIE;&//CCR0&中断禁止 _BIC_SR(GIE);&//关总中断 ADC10CTL0&|=ENC;&//AD&转换使能 TACCTL1=OUTMOD_4;&//CCR1&选输出模式4,当TAR=0&时,输出高电平 TACTL&=TASSEL_2+MC_2;&//TA&改为连续计数,smclk&时钟源 while(1) { &&_BIS_SR(LPM0_bits+GIE);&//进入低功耗0,使能总中断,等待10AD&完成 && &write_com(0x80+0x00); &for(num=0;num&5;num++) &{ &&&write_data(table[dada[num]]); &&&delay(5); &} &_BIS_SR(GIE); } } #pragma&vector&=&TIMERA0_VECTOR&//TA0&中断服务,用来参考稳定 __interrupt&void&ta0_isr(void) { TACTL=0;&//关TA _BIC_SR_IRQ(LPM0_bits);&//退出低功耗 } #pragma&vector&=&ADC10_VECTOR&//ADC10&中断服务 __interrupt&void&adc_isr(void) { _BIC_SR_IRQ(LPM0_bits); ad_value=ADC10MEM/409.2;&//保存AD&结果 for(uchar&i=0;i&5;i++) { &&dada[i]=ad_ &&ad_value=ad_value-dada[i]; &&ad_value=ad_value*10; } &_BIC_SR(GIE); }
本页面信息由华强电子网用户提供,如果涉嫌侵权,请与我们客服联系,我们核实后将及时处理。
&&& 目前,处理器性能的主要衡量指标是时钟频率。绝大多数的集成电路 (IC) 设计都基于同MSP430 ADC10_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MSP430 ADC10
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩20页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 msp430 adc12程序 的文章

 

随机推荐