⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 是实时操作系统uc/os的原代码,写了头文件
💻 C
字号:
/**********************************************************************
  ADC.c file
  LPC213X的ADC函数
  作者:Computer-lov
  建立日期:2006-3-25
  修改日期:2006-3-25
  最后修改时间: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 + -