首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事
您的当前位置:首页正文

AD转换及显示程序

来源:好兔宠物网
#include\"ADC1_liuq.h\"

unsigned long ulValue[1];

/************************************************************************/ void ADC1_Init(void)

{ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); // 使能adc所在的GPIO端口

ADCHardwareOversampleConfigure(ADC_BASE, 64);

// 硬件过采样配置

ADCSequenceConfigure(ADC_BASE,1,ADC_TRIGGER_PROCESSOR,0); SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC); // 使能ADC模块

SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS); // 设置ADC采样速率 ADCSequenceDisable(ADC_BASE, 1);

// 配置前先禁止采样序列1

//配置ADC采样序列的触发事件和优先级:ADC基址,采样序列编号,触发事件,采样

优先级 ADCSequenceStepConfigure(ADC_BASE,1,0,ADC_CTL_END | ADC_CTL_CH1 | ADC_CTL_IE); }

/************************************************************************/ unsigned long ADC1_Sample(void) // ADC采样 {

unsigned long ulValue;

ADCProcessorTrigger(ADC_BASE,1); // 处理器触发采样序,调用ADCProcessorTrigger( )函

// 等待采样结束

//配置ADC采样序列发生器的步进:ADC基址,采样序列编号,步值,通道设置 ADCIntEnable(ADC_BASE,1); // 使能ADC采样序列1的中断 IntEnable(INT_ADC1); IntMasterEnable();

// 使能ADC采样序列1中断

// 使能处理器中断

//使能一个ADC采样序列1

ADCSequenceEnable(ADC_BASE,1);

数触发ADC采样 while (!ADC_EndFlag); }

ADC_EndFlag = 0; // 清除ADC采样结束标志

ADCSequenceDataGet(ADC_BASE, 1, &ulValue); // 读取ADC转换结果 return(ulValue);

/************************************************************************/ void ADC_Sequence_1_ISR(void) // ADC采样序列3的中断函数 {

unsigned long ulStatus;

ulStatus = ADCIntStatus(ADC_BASE, 1, true);

// 读取中断状态

}

ADCIntClear(ADC_BASE, 1); // 清除中断状态,重要,等待下次AD中断 if (ulStatus != 0) // 如果中断状态有效 { ADC_EndFlag = 1; // 置位ADC采样结束标志 }

/************************************************************************/ void Test_ADC1(void) { }

unsigned long ulVal,ulTmp; ADC1_Init(); LCD1602_Init(); while(1) { }

ulVal=ADC1_Sample();

ulTmp = (ulVal * 3000)/1024; // 转换成电压值

sprintf(cBuf, \"ADC1 = %ld(mV)\ // 输出格式化 LCD1602_Write_String(0,0,\" ADC1_Sample \"); LCD1602_Write_String(1,1,cBuf);

Uart0_putstring(cBuf); // 通过UART显示结果 SysCtlDelay(TheSysClock/3);

Uart0_putstring(\"http://liuliu408.taobao.com\\n\"); Uart0_putstring(\"UTAT0 active\\n\"); SysCtlDelay(TheSysClock/3);

charcBuf[16];

/************************************************************************/

因篇幅问题不能全部显示,请点此查看更多更全内容