//ADC通道号定义
#define ADC_Chanel0 (unsigned char)0x00
#define ADC_Chanel1 (unsigned char)0x01
#define ADC_Chanel2 (unsigned char)0x02
#define ADC_Chanel3 (unsigned char)0x03
#define ADC_Chanel4 (unsigned char)0x04
#define ADC_Chanel5 (unsigned char)0x05
#define ADC_Chanel6 (unsigned char)0x06
#define ADC_Chanel7 (unsigned char)0x07 //*************************************
// 函数名称:Init_AD
// 函数功能:对AD初始化,开启或关闭ADC电路
// 入口参数:ADC电路使能参数
// 出口参数:无
/***************************************/
void Init_AD(uint8 Mode)
{
uint16 i ; if(Mode == ENB) //启动ADC电路
{
// F/4 转换时间分频 Fadc = Fmaster/ADC_CR1[4..6]
// [000 F/2] [001 F/3] [010 F/4]
ADC_CR1 = (ADC_CR1 & 0X8F) | 0X00 ; //f/2
// 数据左对齐
ADC_CR2 &= ~0X08 ;
// 启动ADC
ADC_CR1 |= 0X01 ;
// 等待AD电路稳定
for(i=0;i<500;i++) ; ADC_CSR &= ~0X80 ; //转换结束标志清0 return ;
}
else
{
ADC_CR1 &= ~0X01; //关闭ADC电路
return ;
}
} //*************************************
// 函数名称:AdcSwitch
// 函数功能: 在单通道模式下转换某一通道的AD值
// 在(扫描模式下)连续转化1-Chanel的AD值
// 入口参数:要转换的AD通道号
// 出口参数:无
/***************************************/
void AdcSwitch(uint8 Chanel)
{
//选择转换通道
ADC_CSR = (ADC_CSR & 0XF0) | Chanel;
// 启动ADC
ADC_CR1 |= 0X01 ;
//等待转换
while(!(ADC_CSR & 0X80));
ADC_CSR &= ~0X80 ; return ;
} //*************************************
// 函数名称:Adc_Mode_Scan
// 函数功能: ADC扫描模式设置函数
// 入口参数:扫描模式开启参数
// 出口参数:无
/***************************************/
void Adc_Mode_Scan(uint8 Value)
{
if(Value == ENB)
{
ADC_CR2 |= 0X02 ;
}
else
{
ADC_CR2 &= ~0X02 ;
}
} //---应用实例-----
//ADC初始化设置
Init_AD(ENB); //初始化ADC电路并开启电路
// Adc_Mode_Scan(OFF) ;//ADC扫描模式使能 //ADC 转换
AdcSwitch(ADC_Chanel3) ;//转换通道3
TmpH = ADC_DRH ; //取转换结果
TmpL = ADC_DRL ;

最新文章

  1. 如何使用Profiler跟踪阻塞信息
  2. 并发下常见的加锁及锁的PHP具体实现-转载
  3. Fix catalyst driver in Ubuntu 13.04 / 13.10
  4. 每天一个linux命令(9):touch 命令
  5. ASP.NET MVCでResponse Headerのサーバーバージョンをどうやって隠しますか?
  6. 安装VS2010水晶报表插件
  7. select2插件的使用
  8. 立即调用的函数表达式IIFE
  9. Bootstrap3.0学习第九轮(CSS补充)
  10. 基数排序(radix sort)
  11. 日期加减js,天数组增加,日期自动修改
  12. linux 文件属性
  13. Linux编辑器vi使用方法详细介绍
  14. 奇怪的JS正则表达式问题
  15. 快捷键accesskey
  16. maven环境变量的配置及+eclipse的配置使用
  17. MultipartFile实现文件上传
  18. Failed to instantiate [java.util.List]: Specified class is an interface
  19. 4-[多进程]-互斥锁、Queue队列、生产者消费者
  20. ExtJs在页面上window再调用Window的事件处理

热门文章

  1. JS正则替换字符串
  2. Enum:枚举
  3. Cocos2d-x3.0之路--02(引擎文件夹分析和一些细节)
  4. 编程算法 - 二部图确定 代码(C)
  5. C#通过系统API判断已经连接互联网
  6. android的EditText获取另一个焦点
  7. How do I create an IIS application and application pool using InnoSetup script
  8. Google Hacking的实现以及应用
  9. NServiceBus 入门2
  10. Nutch搜索引擎Solr简介及安装