📄 adc.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -