ADC10 测量单通道多次模式

发布者:TechWhizKid最新更新时间:2018-01-30 来源: eefocus关键字:ADC10  测量单通道  多次模式 手机看文章 扫描二维码
随时随地手机看文章

volatile unsigned int ad_value[10];
int main( void )
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
BCSCTL1 =CALBC1_1MHz; //设定DCO 为1MHZ
DCOCTL =CALBC1_1MHZ;
//时钟源选AD 内部时钟并4 分频,选通道10,AD 启动信号来源选TA.OUT1,选单通道连续采样

ADC10CTL1=ADC10DIV_3+INCH_10+SHS_1+CONSEQ_2;
//选1.5V 为正向参考,地为负参考,AD 中断使能,打开参考,启动AD 模块(不是启动AD 转换)
ADC10CTL0=SREF_1+ADC10SHT_3+ADC10IE+REFON+ADC10ON;
TACCR0=30; //延时等待参考稳定
TACCTL0 |=CCIE; //CCR0 中断使能
TACTL=TACLR+MC_1+TASSEL_2; //TA 增计数,时钟源为smclk
_BIS_SR(LPM0_bits+GIE); //进入低功耗0,使能总中断,等待参考稳定
TACCTL0 &=~CCIE; //CCR0 中断禁止
_BIC_SR(GIE); //关总中断
ADC10CTL0 |=ENC; //AD 转换使能
TACCTL1=OUTMOD_4; //CCR1 选输出模式4,当TAR=0 时,输出高电平
TACTL =TASSEL_2+MC_2; //TA 改为连续计数,smclk 时钟源
_BIS_SR(LPM0_bits+GIE); //进入低功耗0,使能总中断,等待10AD 完成
_NOP();
return 0;
}
#pragma vector = TIMERA0_VECTOR //TA0 中断服务,用来参考稳定
__interrupt void ta0_isr(void)
{
TACTL=0; //关TA
_BIC_SR_IRQ(LPM0_bits); //退出低功耗
}
#pragma vector = ADC10_VECTOR //ADC10 中断服务
__interrupt void adc_isr(void)
{
static char i=0;
ad_value[i]=ADC10MEM; //保存AD 结果
i++;
if(i==10) //作10 次AD
_BIC_SR_IRQ(LPM0_bits+GIE); //退出低功耗
}


关键字:ADC10  测量单通道  多次模式 引用地址:ADC10 测量单通道多次模式

上一篇:MSP430F1121与PCF8576驱动程序
下一篇:ADC10 测量单通道单次模式

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved