adc.c
来自「冷火MCF52255开发板精华资料」· C语言 代码 · 共 65 行
C
65 行
#include "ADC.h"
void ADC_init(void)
{
MCF_ADC_CTRL1 = 0b0101000000000010;//循环顺序扫描模式,AN0~7设为单端输入,禁止中断,停止转换
//SMODE=2.循环顺序扫描
//CHNCFG=0,8路ANn都设为单端输入
//HLMTIE=0,禁止超上限中断
//LLMTIE=0,禁止超下限中断
//ZCIE=O,禁止过零中断
//EOSIEO=0,禁止转换完成中断
//SYNC0=1,由SYNC0输入或写START0启动扫描
//START=0,未启动扫描
//STOP0=1,停止转换
MCF_ADC_CTRL2 = 0b0000000000001001;
//DIV=20,ADC时钟频率
//(fAD=fBUS/((9+1)*2)
MCF_ADC_POWER = 0b0000000010100100;
//PD0=0,转换器A上电
//PD1=0,转换器B上电
//PD2=1,参考电压电路上电依赖于转换器A/B
//APD=0,禁止自动掉电
//PUDELAY=10;上电延时为1O个ADC时钟周期
//ASB=0,禁止自动低功耗模式
MCF_ADC_CAL = 0b0000000000000000;
//SEL_VREFH=0,SEL_VREFL=O
//使用内部参考电压VRH和VRL
MCF_GPIO_PANPAR = 0xFFFF;
MCF_ADC_CTRL1 &= 0xBFFF;
while(MCF_ADC_POWER&MCF_ADC_POWER_PSTS0) ;
while(MCF_ADC_POWER&MCF_ADC_POWER_PSTS1) ;
MCF_ADC_CTRL1 |= 0X2000;
}
uint16 ADonce(uint16 ANn)
{
uint16 result;
while(MCF_ADC_ADSTAT&(1<<ANn)==0) ;
result=(MCF_ADC_ADRSLT(ANn)&0x7FF8)>>3;
return result;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?