📄 adc_function.c
字号:
#include "ioCC2510.h"
#include "RF04EB.h"
#include "string.h"
#include "lcd128_64.h"
#include "ADC_function.h"
void Init_Clock(void)
{
CLKCON &= ~0x40; //晶振
while(!(SLEEP & 0x40)); //等待晶振稳定
CLKCON &= ~0x47; //TICHSPD128分频,CLKSPD不分频
SLEEP |= 0x04; //关闭不用的RC振荡器
}
void Init_AD(void)
{
ADCCFG = 0x01; //打开AIN0
ADCH &= 0X00; //清EOC标志
ADCCON3=0x20; //单次转换参考电压为1.25V内部基准源,对AIN0进行A/D转换
//12位分辨率
ADCCON1 = 0X30; //停止A/D
IEN0|=0x02;//使能ADC中断
ADCCON1 |= 0X40; //启动A/D
}
#pragma vector = ADC_VECTOR
__interrupt void ADC_conversion(void)
{
float num;
UINT8 temp[2];
UINT8 adcdata[]="0.00V";
// TCON &= ~0x20;
temp[1] = ADCL;
temp[0] = ADCH;
temp[1] = temp[1]>>4;//数据处理
num = (temp[0]*16+temp[1])*1.25/2047;//定参考电压为1.25V。12位精确度
adcdata[0] = (char)(num)%10+48;
//adcdata[2] = '.';
adcdata[2] = (char)(num*10)%10+48;
adcdata[3] = (char)(num*100)%10+48;
Print(2,0,adcdata,1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -