📄 adc_isr.c
字号:
#include "hw_memmap.h"
#include "hw_types.h"
#include "gpio.h"
#include "sysctl.h"
#include"interrupt.h"
#include "hw_ints.h"
#include "ADC.H"
void ADCInit(void) //assumed that LM3S811 rev C was used
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC); // 使能ADC时钟
// 配置ADC的采样速率为500kps
SysCtlADCSpeedSet(SYSCTL_ADCSPEED_500KSPS );
ADCSequenceDisable(ADC_BASE, 0); // 禁止采样序列发生器
// 配置采样序列的触发源和优先级
ADCSequenceConfigure(ADC_BASE, 0, ADC_TRIGGER_PROCESSOR, 1);
// 配置采样序列发生器的步进
ADCSequenceStepConfigure(ADC_BASE, 0, 0, ADC_CTL_TS);
ADCSequenceStepConfigure(ADC_BASE, 0, 1, ADC_CTL_TS | ADC_CTL_END);
ADCSequenceEnable(ADC_BASE, 0); //使能采样序列中断
}
signed int GetTemp(void) //output temperture*100
{
unsigned long ulBuffer[2];
signed int i;
ADCProcessorTrigger(ADC_BASE, 0); // 引发采样序列的处理器触发
while(ADCSequenceDataGet(ADC_BASE, 0, ulBuffer) >=2) ; // 获取采样序列捕获的数据
for(i=1; i<2; i++)
{ ulBuffer[0] +=ulBuffer[i]; }
ulBuffer[0] =(unsigned int) (ulBuffer[0]*300)/(0x400*2) ;
i=(unsigned int)( (270-ulBuffer[0])*75-5500 ); // 得到终端 SENSO电压
return(i);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -