dsPIC33EP ADC模块初始化及应用实例
//文件名 p33adc.h #ifndef _P33ADC_H_
#define _P33ADC_H_
//#include "p33adc.h"
//--AD1CON1 #define ADON (1<<15)
#define MAUTO (7<<5) //采样后 自动转换模式
#define SAMP (1<<1)
#define DONE (1<<0) //ADC时钟选择--时钟分频
#define ADC_DIV1 (1-1)
#define ADC_DIV5 (5-1)
#define ADC_DIV10 (10-1)
#define ADC_DIV25 (25-1)
#define ADC_DIV50 (50-1)
#define ADC_DIV100 (100-1)
#define ADC_DIV250 (250-1) //--AD通道选择------
#define ADC_Chanel0 (0x00<<0)
#define ADC_Chanel1 (0x01<<0)
#define ADC_Chanel2 (0x02<<0)
#define ADC_Chanel3 (0x03<<0)
#define ADC_Chanel4 (0x04<<0)
#define ADC_Chanel5 (0x05<<0)
#define ADC_Chanel6 (0x06<<0)
#define ADC_Chanel7 (0x07<<0)
#define ADC_Chanel8 (0x08<<0)
#define ADC_Chanel9 (0x09<<0)
#define ADC_Chanel10 (0x0A<<0)
#define ADC_Chanel11 (0x0B<<0)
#define ADC_Chanel12 (0x0C<<0)
#define ADC_Chanel13 (0x0D<<0)
#define ADC_Chanel14 (0x0E<<0)
#define ADC_Chanel15 (0x0F<<0) //================================
extern void Init_Adc(uint16 ClkDiv) ;
extern uint16 AdcSwitch(uint16 Adc_Ch) ; #endif //文件名 p33adc.c #include "global.h"
//#include "p33adc.h" //***************************************
// 函数名称:Init_Adc
// 函数功能:初始化ADC模块
// 入口参数:
// 出口参数:无
// 返回值:无
// ADC时钟来源于Fcpu
//***************************************
void Init_Adc(uint16 ClkDiv)
{
AD1CON1 = 0X0000|MAUTO; //设置为自动模式 10位4通道模式 数据右对齐
AD1CON2 = 0X0000 ;
AD1CON3 = 0X0000 | ClkDiv |0X8000; //ADC时钟分频
AD1CON4 = 0X0000 ; //不使能DMA 每个通道分一个字的缓存 AD1CHS123 = 0X0000 ;
AD1CHS0 = 0X0000 ; AD1CSSH = 0X0000 ;
AD1CSSL = 0X0000 ; AD1CON1 |= ADON ; //开启ADC模块工作
asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;//延时
asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;
}
//***************************************
// 函数名称:AdcSwitch
// 函数功能:选择AD通道转换
// 入口参数:
// 出口参数:无
// 返回值:无
//***************************************
uint16 AdcSwitch(uint16 Adc_Ch) // ADRESH ADRESL
{
uint16 wTmp ; AD1CON1 |= ADON ; //开启ADC模块工作 AD1CHS0 = (AD1CHS0 & 0XFFE0)|Adc_Ch ;//选择通道 asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ;//延时
asm("nop") ;asm("nop") ;asm("nop") ;asm("nop") ; AD1CON1 &= ~DONE ; //ADC空闲
AD1CON1 |= SAMP ; //开始转换 while(!(AD1CON1 & DONE)) ; //等待转换完成
// AD1CON1 &= ~DONE ; //ADC空闲 wTmp = ADC1BUF0 & 0X03FF ; //读取转换结果 return wTmp ;
} //应用实例 void main(void)
{
uint16 g_wTmp1 ; //初始化ADC
Init_Adc(ADC_DIV25) ;//AD模块时钟输入频率 10BIT AD while(1)
{
g_wTmp1 = AdcSwitch(ADC_Chanel0) ;//读取转换结果
} }
dsPIC33EP ADC模块初始化及应用实例的更多相关文章
- JobTracker等相关功能模块初始化
[Hadoop代码笔记]Hadoop作业提交之JobTracker等相关功能模块初始化 一.概要描述 本文重点描述在JobTracker一端接收作业.调度作业等几个模块的初始化工作.想过模块的介绍会在 ...
- nginx源码分析之模块初始化
在nginx启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...
- nginx-push-stream模块源码学习(二)——模块初始化
本文重点介绍push stream模块的构成,至于nginx如何启动.维护该模块不会详细阐述,以后有时间会做详细阐述. 一.模块定义 1.1. 模块配置 通用nginx模块的配置struct有三种, ...
- nodejs -- 主模块 ,初始化.
一:知识点: 1-1: 模块初始化: 1-2 主模块: 二: 测试 2-1: 代码: 1) 主模块 1: main.js var counter1 = require("./counte ...
- Java初始化顺序(静态变量、静态初始化块、实例变量、实例初始化块、构造方法)
1.执行顺序 1.1.一个类中的初始化顺序 类内容(静态变量.静态初始化块) => 实例内容(变量.初始化块.构造器) 1.2.两个具有继承关系类的初始化顺序 父类的(静态变量.静态初始化块)= ...
- Framebuffer 驱动学习总结(二)---- Framebuffer模块初始化
---恢复内容开始--- Framebuffer模块初始化过程:--driver\video\fbmem.c 1. 初始化Framebuffer: FrameBuffer驱动是以模块的形式注册到系统 ...
- Nodejs模块初始化
模块初始化 一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象.之后,缓存起来的导出对象被重复利用. 主模块 通过命令行参数传递给NodeJS以启动程序的模块被称为 ...
- Windows加载器与模块初始化
本文是Matt Pietrek在1999年9月的MSJ杂志上发表的关于Windows加载器与模块初始化方面的文章.作者深入分析了LdrpRunInitialize璕outines例程的作用,用C语言写 ...
- C# 9.0新特性详解系列之三:模块初始化器
1 背景动机 关于模块或者程序集初始化工作一直是C#的一个痛点,微软内部外部都有大量的报告反应很多客户一直被这个问题困扰,这还不算没有统计上的客户.那么解决这个问题,还有基于什么样的考虑呢? 在库加载 ...
随机推荐
- 2015 NI 校招笔试机试面试
美国国家仪器NI也算是入驻上海很好的一家外企了,它是我们院的合作公司,加上今年NI在我们院扩招实习生,这次是一个难得的机会可以进入NI实习,可惜我并没有好好把握... 一.笔试 几个做错的印象特别深刻 ...
- HTTP Post请求过程详解
摘要: HTTP(HyperText Transfer Protocol),超文本传输协议,是一个客户端和服务器端请求和应答的标准(TCP),客户端是终端用户,服务器端是网站. HTTP是基于Sock ...
- bzoj 3809 Gty的二逼妹子序列(莫队算法,块状链表)
[题意] 回答若干个询问,(l,r,a,b):区间[l,r]内权值在[a,b]的数有多少[种]. [思路] 考虑使用块状链表实现莫队算法中的插入与删除. 因为权值处于1..n之间,所以我们可以建一个基 ...
- 《Java数据结构与算法》笔记-CH5-链表-3双端链表
/** * 双端链表的实现 */ class LinkA { public long dData; public LinkA next; public LinkA(long d) { dData = ...
- Android:控件WebView显示网页 -摘自网络
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要 ...
- 记录一个 关于 python 普通方法,静态方法和类方法 的介绍。@classmethod @staticmethod
上班时间 只贴看到最厉害的答案 回头总结 http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod ...
- 【转】大数据以及Hadoop相关概念介绍
原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4230220.html 感谢! 一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以 ...
- RedHat/CentOS6.4---永久关闭iptables
今天无意中发现一个现象,当我关闭iptables并且停止iptables服务,但是总会有一些出奇的事情发生,当我再次启动系统,查看iptables状态,iptables又自动开启,很是无奈啊!在Red ...
- Qt Creator无法用“UTF-8”编码解码
在Qt Creator 里打开其他编辑器的代码时有时会提示: 无法用"UTF-8"编码解码 在文件上右键使用NotePad++编辑器打开: 选择->格式-&g ...
- JSP文件下载时文件名在ie和firefox下面文件名不一致极其超链接中文乱码的问题的改进
response.setContentType("application/octet-stream;charset=UTF-8"); fileName=java.net.URLEn ...