📄 adc.c
字号:
#include <pic.h>
#include "total.h"
/*********************************************************************************************
* 函数名称: unsigned short adc_read(unsigned char channel)
* 功能: 对某一通道进行AD转换
* 入口参数: channel 转换的通道号
* 出口参数: result 1次AD转换的结果
* 全局变量: 无
* 调用模块: adc_delay
* 设计者: 饶阳胜
* 日期: 05-3-1
*********************************************************************************************/
unsigned short Adc_Read(unsigned char channel)
{
unsigned char i;
unsigned short ad_result;
ADCON0 = (channel << 3) + 0x81; //使能AD,32倍外部转换时钟
for(i = 0; i < 7; i++){ //延时采样
asm("nop");
asm("nop");
}
ADIF = 0;
ADGO = 1; //开始转换
while(ADIF == 0)
continue; //等待转换完成
ad_result = (ADRESH << 8) + ADRESL; //返回转换结果
return ad_result;
}
/**********************************************************************************************
* 函数名称: unsigned short ad_average(unsigned char channel)
* 功能: 求AD转换平均值
* 入口参数: channel 通道号
* 出口参数: result 转换后的平均值
* 全局变量: 无
* 调用模块: adc_read
* 设计者: 饶阳胜
* 日期: 05/3/1
**********************************************************************************************/
unsigned short Adc_Adverage(unsigned char channel)
{
long summation = 0; //和变量
unsigned short i; //次数变量
for(i = 0; i < 256; i++){
summation += Adc_Read(channel); //调用AD转换函数
}
return (short)(summation >> 8);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -