微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC2530 的ADC 中断

CC2530 的ADC 中断

时间:12-22 整理:3721RD 点击:

大家好~~我想用一下CC2530的AD采样转换,对单通道的重复转换,然后希望转换结束就产生中断(单次结束),这个怎么对寄存器配置呢~~我看了下手册没有ADC的中断使能啊~~谢谢大家啦~~

贴一下我的代码吧~~

有大神相告不?

void SensorADCInit( void )

{

P0SEL |= 0x01;

P0DIR &= 0xFE;

APCFG |= 0x01;//通道0模拟输入

ADCIF = 0;   //清楚中断标志,得试试是否是硬件清楚(好像是)

//ADCCON1 = 0x03 | HAL_ADC_RAND_STOP | HAL_ADC_STSEL_ST;//选择的是ST=1时开始ADC

//ADCCON2  控制多位AD采集

}

void SensorADCBegin(void)

{

ADCCON3 = HAL_ADC_CHN_AIN0 | HAL_ADC_DEC_512 |HAL_ADC_REF_125V;//通道0,采样率512,

}

#pragma vector = ADC_VECTOR

__interrupt void P0_ISR(void)

{

SensorAD[i++] = ADCL;

SensorAD[i++] = ADCH;    //低位在前

SensorValue |= ADCL;

SensorValue |= ADCH<<8;

SensorValue >>= 4;

fSensorValue =(float)(SensorValue/(float)2048)*3.3;//有疑问,还没有测试,按理应该是4096

if(i<80)

       {

 //ADCCON1 |= HAL_ADC_START;//继续

}

else

       {

         i = 0;

       }

       ADCIF = 0;

}

void main(void)

{

//char i;

       //char TempValue[10];

//InitUART0();                                    //初始化串口

//initTempSensor();                               //初始化ADC

SensorADCInit();

SensorADCBegin();

       while(1);

}

哎~~没有高手来回答啊~~看来是不屑啊~~新手刚刚试了好久~~总算是出来了~~

在中断的初始化中再加两句,开AD的中断使能ADCIE=1,和所有中断使能EA=1

搞了半天总算出来了~~真的~~这个CC2530的ADC在网上就找不到中断的例程~~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top