打印

官网上的一个示例问题

[复制链接]
1081|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2013-5-14 19:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
dc, ADC, AD, ADC1, RS
就是这个
//******************************************************************************
//  MSP430F21x2 Demo - ADC10, DTC Sample A2-0, AVcc, Single Sequence, DCO
//
//  Description: Sample A2/A1/A0 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 LPM0
//  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.
//
//               MSP430F21x2
//            -----------------
//        /|\|              XIN|-
//         | |                 |
//         --|RST          XOUT|-
//           |                 |
//       >---|P2.2/A2      P1.0|-->LED
//       >---|P2.1/A1          |
//       >---|P2.0/A0          |
//
//  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 = INCH_2 + CONSEQ_1;            // A2/A1/A0, single sequence
   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
   ADC10DTC1 = 0x03;                         // 3 conversions
   ADC10AE0 |= 0x07;                         // P2.2,1,0 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)
}

相关帖子

沙发
shimx|  楼主 | 2013-5-14 19:57 | 只看该作者
想问下A2,A1,A0口的转换好的数据都放在哪了

使用特权

评论回复
板凳
liliang9554| | 2013-5-14 19:59 | 只看该作者
本帖最后由 liliang9554 于 2013-5-14 20:00 编辑

没看懂啊

使用特权

评论回复
地板
shimx|  楼主 | 2013-5-14 19:59 | 只看该作者
该怎样调用转换好的数据呀

使用特权

评论回复
5
yszong| | 2013-5-14 20:01 | 只看该作者
ADC10MEM好像只能存放一个数据吧

使用特权

评论回复
6
liliang9554| | 2013-5-14 20:02 | 只看该作者
ADC10MEM确实只放一个数据

使用特权

评论回复
7
zhaoxqi| | 2013-5-14 20:04 | 只看该作者
嗯,每次转换完成ADC10IFG会置位一次

使用特权

评论回复
8
shimx|  楼主 | 2013-5-14 20:05 | 只看该作者
什么方式啊?

使用特权

评论回复
9
zhanghqi| | 2013-5-14 20:07 | 只看该作者
先是A2 然后A1 再是A0

使用特权

评论回复
10
liliang9554| | 2013-5-14 20:08 | 只看该作者
zhanghqi 发表于 2013-5-14 20:07
先是A2 然后A1 再是A0

正解

使用特权

评论回复
11
shimx|  楼主 | 2013-5-14 20:15 | 只看该作者
嗯,我知道了,多谢大家 啊

使用特权

评论回复
12
shimx|  楼主 | 2013-5-14 20:15 | 只看该作者
结贴了啊

使用特权

评论回复
13
mmbs| | 2013-5-15 23:53 | 只看该作者
有相对应的ad数据寄存器吧。

使用特权

评论回复
14
mmbs| | 2013-5-15 23:53 | 只看该作者
在手册上肯定有的。

使用特权

评论回复
15
comeon201208| | 2013-5-16 21:46 | 只看该作者
Sample A2/A1/A0 as single sequence with reference to AVcc,这个说的是单通道以此转换的啦,所以啦就是用在同一个ADC10MEM中也是没啥问题的啦

使用特权

评论回复
16
comeon201208| | 2013-5-16 21:46 | 只看该作者
只要有足够的时间以此重ADC10MEM中读取出这些数据的就Ok啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

857

主题

10661

帖子

5

粉丝