打印
[MCU]

示例问题

[复制链接]
1861|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2020-5-10 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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|  楼主 | 2020-5-10 16:24 | 只看该作者
想问下A2,A1,A0口的转换好的数据都放在哪了

使用特权

评论回复
板凳
liliang9554| | 2020-5-10 16:28 | 只看该作者
没看懂啊

使用特权

评论回复
地板
shimx|  楼主 | 2020-5-10 16:34 | 只看该作者

该怎样调用转换好的数据呀

使用特权

评论回复
5
yszong| | 2020-5-10 16:37 | 只看该作者
ADC10MEM好像只能存放一个数据吧

使用特权

评论回复
6
liliang9554| | 2020-5-10 16:40 | 只看该作者

ADC10MEM确实只放一个数据

使用特权

评论回复
7
zhaoxqi| | 2020-5-10 16:43 | 只看该作者
嗯,每次转换完成ADC10IFG会置位一次

使用特权

评论回复
8
shimx|  楼主 | 2020-5-10 16:50 | 只看该作者

什么方式啊?

使用特权

评论回复
9
zhenykun| | 2020-5-10 16:53 | 只看该作者

先是A2 然后A1 再是A0

使用特权

评论回复
10
liliang9554| | 2020-5-10 16:56 | 只看该作者
正解

使用特权

评论回复
11
jiahy| | 2020-5-10 16:58 | 只看该作者
有相对应的ad数据寄存器吧。

使用特权

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

使用特权

评论回复
13
wuhany| | 2020-5-10 17:05 | 只看该作者
只要有足够的时间以此重ADC10MEM中读取出这些数据的就Ok啦

使用特权

评论回复
14
heweibig| | 2020-5-10 17:09 | 只看该作者
有什么问题呢?看着没什么问题,你实际使用的时候,替换宏定义的IO就可以了

使用特权

评论回复
15
jiaxw| | 2020-5-10 17:14 | 只看该作者
楼主是代码粘贴了,没有说问题。

使用特权

评论回复
16
zhaoxqi| | 2020-5-13 22:04 | 只看该作者
有什么问题呢?看着没什么问题,你实际使用的时候,替换宏定义的IO就可以了

使用特权

评论回复
17
wenfen| | 2020-5-13 22:11 | 只看该作者
ADC10有16个采样通道A0~A15

使用特权

评论回复
18
renyaq| | 2020-5-13 22:16 | 只看该作者
可以读取ADC10MEM

使用特权

评论回复
19
liuzaiy| | 2020-5-13 22:20 | 只看该作者
参考ADC12单通道单次转换

使用特权

评论回复
20
zyf部长| | 2020-5-13 22:23 | 只看该作者
data=ADC12MEM0;

使用特权

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

本版积分规则

857

主题

10661

帖子

5

粉丝