ADC interrupt

smallcracker 2021-01-29 00:00:00
Categories: Tags:

ADC中断

一、相关函数介绍

  1. ADCIntRegister()ADCIntUnregister()用于为ADC中断注册(注销)一个中断函数
  2. ADCIntEnable()ADCIntDisable 使能(失能)一个采样序列中断
  3. ADCIntClear() 清除采样序列中断源
  4. ADCIntStatus() 获取当前中断状态

二、怎样触发中断

在配置采样通道的时候,如果参数设置有 ADC_CTL_IE 那么当这个通道采集完之后就会产生一个中断。

三、例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void configureADC(){
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);

//选择E3引脚(即CH0)作为ADC输入
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_3);

//配置采样序列发生器等
ADCSequenceConfigure(ADC0_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);
ADCSequenceStepConfigure(ADC0_BASE, 0, 0,ADC_CTL_IE | ADC_CTL_END | ADC_CTL_CH0);

ADCSequenceEnable(ADC0_BASE, 0);

//配置ADC中断
ADCIntRegister(ADC0_BASE, 0 , convet);
ADCIntEnable(ADC0_BASE, 0);
return ;
}

四、注意

在写中断函数的时候记得清除中断标记,因为清除中断需要几个时钟周期,所以,我们需要在中断函数一开始就清除中断。