📄 adc.c
字号:
#include "config.h"
uint8 ADC_Init(void)
{
PCONP |=1 <<12; // 必须打开ADC的功率控制位ADC才可以正常工作
//进行ADC模块设置
PINSEL1 |= (0x01 << 14); // 设置P0.23为AIN0功能
//PINSEL1 |= (0x01 << 14)| // 设置P0.23为AIN0功能
// (0x01 << 16); // 设置P0.24为AIN0功能
//PINSEL3|=(((unsigned)0x03)<< 30); // 设置P1.31为AIN5功能
return 1;
}
uint8 ADC_Data_read(uint8 channelNum,uint32 * data)
{
uint32 i;
static uint32 AdcData; // 用静态局部变量保存消息
AD0CR = (1 << channelNum)| // 选择通道
((Fpclk / 1000000 - 1) << 8)| // CLKDIV=Fpclk/1000000-1,转换时钟为1MHz
(0 << 16)| // BURST=0,软件控制转换操作
(0 << 17)| // CLKS=0, 使用11clock转换
(1 << 21)| // PDN=1,正常工作模式
(1 << 24); // 先不启动ADC
for(i=0; i < 30; i++)
{
switch(channelNum)
{
case 0:
AdcData = ADDR0; // 读取AD通道0结果,清除中断标志位
break;
case 1:
AdcData = ADDR1; // 读取AD通道1结果,清除中断标志位
break;
case 5:
AdcData = ADDR5; // 读取AD通道5结果,清除中断标志位
break;
}
AdcData = (AdcData >> 6) & 0x3ff;
AdcData = AdcData * 3300; // 参考电压由精密恒压源提供的3.3V
AdcData = AdcData / 1024;
*data+=AdcData;
}
*data=*data/30;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -