专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
MSP430G2553多路ADC问题
2019-03-24 12:05
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
13323
9
1667
想用MSP430G2553做一个多路ADC,至少8个不同的ADC同时工作,不知道直接接可以实现吗?还是要用多路开关?具体实现思路应该怎样?希望大大们说得详细点,谢谢!
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
wstt
2019-03-25 21:50
//******************************************************************************
// MSP430G2x33/G2x53 Demo - ADC10, DTC Sample A2-0, AVcc, Single Sequence, DCO
//
// Description: Sample A3/A2/A1 as single sequence with reference to AVcc.
// Software sets ADC10SC to trigger sample sequence. In Mainloop MSP430 waits
// in LPM0 to save power until ADC10 conversion complete, ADC10_ISR(DTC) will
// force exit from any LPMx in Mainloop on reti. ADC10_ISR will force any LPMx
// exit. ADC10 internal oscillator times sample period (16x) and conversion
// (13x). DTC transfers conversion code to RAM 200h - 206h. P1.0 set at start
// of conversion burst, reset on completion.
//
// MSP430G2x33/G2x53
// -----------------
// /|| XIN|-
// | | |
// --|RST XOUT|-
// | |
// >---|P1.3/A3 P1.0|-->LED
// >---|P1.2/A2 |
// >---|P1.1/A1 |
//
// D. Dang
// Texas Instruments Inc.
// December 2010
// Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
//******************************************************************************
#include "msp430g2553.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ADC10CTL1 = INCH_3 + CONSEQ_1; // A3/A2/A1, single sequence
ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
ADC10DTC1 = 0x03; // 3 conversions
ADC10AE0 |= 0x0E; // P1.3,2,1 ADC10 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; // P1.0 = 1
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
__bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit
P1OUT &= ~0x01; // P1.0 = 0
}
}
// 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)
}
复制代码
加载中...
查看其它9个回答
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
- //******************************************************************************
- // MSP430G2x33/G2x53 Demo - ADC10, DTC Sample A2-0, AVcc, Single Sequence, DCO
- //
- // Description: Sample A3/A2/A1 as single sequence with reference to AVcc.
- // Software sets ADC10SC to trigger sample sequence. In Mainloop MSP430 waits
- // in LPM0 to save power until ADC10 conversion complete, ADC10_ISR(DTC) will
- // force exit from any LPMx in Mainloop on reti. ADC10_ISR will force any LPMx
- // exit. ADC10 internal oscillator times sample period (16x) and conversion
- // (13x). DTC transfers conversion code to RAM 200h - 206h. P1.0 set at start
- // of conversion burst, reset on completion.
- //
- // MSP430G2x33/G2x53
- // -----------------
- // /|| XIN|-
- // | | |
- // --|RST XOUT|-
- // | |
- // >---|P1.3/A3 P1.0|-->LED
- // >---|P1.2/A2 |
- // >---|P1.1/A1 |
- //
- // D. Dang
- // Texas Instruments Inc.
- // December 2010
- // Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
- //******************************************************************************
- #include "msp430g2553.h"
- void main(void)
- {
- WDTCTL = WDTPW + WDTHOLD; // Stop WDT
- ADC10CTL1 = INCH_3 + CONSEQ_1; // A3/A2/A1, single sequence
- ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
- ADC10DTC1 = 0x03; // 3 conversions
- ADC10AE0 |= 0x0E; // P1.3,2,1 ADC10 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; // P1.0 = 1
- ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
- __bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit
- P1OUT &= ~0x01; // P1.0 = 0
- }
- }
- // 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)
- }
复制代码一周热门 更多>