⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p271_s1.c

📁 msp430开发版程序
💻 C
字号:
//序列通道多次转换举例:P271
//AVcc作为参考源,通道为A0、A1、A2和A3。转换结果分别存放在ADC12MEM0、ADC12MEM1、ADC12MEM2和ADC12MEM3。每次转换完毕结果
//存放在A0results[]、A1results[]、A2results[]和A3results[]。

/*
将8路精密可调电阻电路板接到P6口,然后运行仿真,查看结果
*/

//#include "msp430x44x.h"
#include "msp430x14x.h"
#define Num_of_Results 8
static unsigned int A0results[Num_of_Results];
static unsigned int A1results[Num_of_Results];
static unsigned int A2results[Num_of_Results];
static unsigned int A3results[Num_of_Results];
void main(void)
{
	WDTCTL = WDTPW + WDTHOLD;
	P6SEL = 0x0F;  //使能A/D通道
	ADC12CTL0 = ADC12ON + MSC + SHT0_8;
	ADC12CTL1 = SHP + CONSEQ_3;  //序列通道多次转换
	ADC12MCTL0 = INCH_0;  //ref+=Avcc,通道A0
	ADC12MCTL1 = INCH_1;  //ref+=Avcc,通道A1
	ADC12MCTL2 = INCH_2;  //ref+=Avcc,通道A2
	ADC12MCTL3 = INCH_3 + EOS;  //ref+=Avcc,通道A3,最后通道
	ADC12IE = 0x08;  //使能ADC12IFG.3
	ADC12CTL0 |= ENC;  //使能转换
	_EINT();
	ADC12CTL0 |= ADC12SC;  //开始转换
	_BIS_SR(LPM0_bits);	
}

#pragma vector = ADC_VECTOR
__interrupt void ADC12ISR(void)
{
	static unsigned int index = 0;
	A0results[index] = ADC12MEM0;  //存通道A0结果,清除IFG	
	A1results[index] = ADC12MEM1;  //存通道A1结果,清除IFG
	A2results[index] = ADC12MEM2;  //存通道A2结果,清除IFG
	A3results[index] = ADC12MEM3;  //存通道A3结果,清除IFG	
	index = (index + 1)%Num_of_Results;		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -