📄 adc.c
字号:
/**********************************************************************
ADC.c file
LPC213X的ADC函数
本程序只供学习使用,不得用于其它任何用途,否则后果自负。
ARM_OS_main.c file
LPC213x上的操作系统——ARM_OS
作者:heciang
联系电话:13811129591
QQ:176780142
Email:heciang@126.com
建立日期:2006-5-1
修改日期:2006-5-15
最后修改时间:2006-08-25
版本:V1.0
Copyright(C) Computer-lov 2006-2016
All rights reserved
**********************************************************************************************/
**********************************************************************/
#include "CPU.H"
#include "My_type.h"
#include "ADC.h"
#include "KEYS.H"
////////////////////////由软件启动一次转换,并将ADC结果返回//////////////////////////
uint16 ADC_software_conversion(void)
{
uint16 result;
AD0CR |= 1<<24; //开始启动一次转换
while((AD0DR & 0x80000000)==0); //等待转换完成
AD0CR |= 1<<24; //再次启动一次转换
while((AD0DR & 0x80000000)==0); //等待转换完成
result=(AD0DR>>6)&0x3FF; //读取结果
return result; //返回结果
}
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////ADC校准/////////////////////////////////////////////////
void ADC_calibration(void)
{
//LPC213x的ADC没有校准功能。
}
//////////////////////////////////////////////////////////////////////////////////
////////////////////////////ADC初始化/////////////////////////////////////////////
void ADC_init(void)
{
//将P0.30连接到AD0.3
PINSEL1 &= ~0x20000000;
PINSEL1 |= 0x10000000;
//ADC模块设置
AD0CR=(1<<3)|(55<<8)|(1<<21)|(1<<24);
while((AD0DR & 0x80000000)==0); //等待转换完成
}
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////选择通道ch,启动转换,并将ADC结果返回///////////////////
uint16 read_ADC(uint8 ch)
{
//设置通道
AD0CR &= ~0xFF;
AD0CR |= (1<<ch);
return ADC_software_conversion();
}
//////////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -