adc12.txt

来自「msp430f149的A/D转换。单通道单次转换和时钟模块操作的程序」· 文本 代码 · 共 49 行

TXT
49
字号
#include <msp430x14x.h>

unsigned int ADvalue;
void ADC12Init(void);

void main(void)
{
	WDTCTL = WDTPW + WDTHOLD;
	initclk();
	ADC12Init();			//A/D转换初始化
	_EINT();			//允许中断			 
	ADC12CTL0 |= ADC12SC;		//启动第一次A/D转换
	while(1);
}

void ADC12Init(void)
{
	ADC12CTL0 &= ~ENC;		//在改变设置前停止A/D转换
	ADC12CTL0 = ADC12ON;		//打开ADC内核,无转换时间溢出中断,无溢出中断
	ADC12CTL1 = CONSEQ_0 + SHP;	//单通道单次,采样定时器输出为采样信号

	ADC12MCTL0 = 0X00;		//ADC12MCTL0的输入通道为A0
	ADC12IE    = BIT0;
	ADC12CTE0  |= ENC;
}

interrupt [ADC_VECTOR] void ADC(void)
{
	case 0x02:break;
	case 0x04:break;
	case 0x06:
		ADvalue = ADC12MEM0;
		ADC12CTL0 |= ADC12SC;
	default:break;
}

void initclk(void)
{
      unsigned char i;
      BCSCTL1  &= ~(XT2OFF + XTS);		//启动XT2晶振,ACLK为XT1;
      BCSCTL2  |= SELM1;			//MCLK为XT2,不分频
      do					//等待时钟源转换完成
      {
            IFG1 &= ~OFIFG;
            for ( i = 0xff ; i > 0 ;i--);
      }
      while((IFG1 & OFIFG) != 0);
}     
     

⌨️ 快捷键说明

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