#ifndef __ADC1_H_

#define __ADC1_H_

#include "common.h"

#include "delay.h"

void adc_init(u8 ch,u8 div);

u16 adc_cover(u8 ch);

#endif

#include "adc1.h"

void adc_init(u8 ch,u8 div)//最大时钟不得大于12.4M

{

//打开ADC和IO口时钟

LPC_SC->PCONP |= (1<<15)|(1<<12);

switch(ch)

{

case 0:

LPC_IOCON->P0_23 = 0x00;

LPC_IOCON->P0_23 |= (1<<0)|(1<<8)|(1<<10);//无过滤 模拟adc 开漏

break;

case 1:

LPC_IOCON->P0_24 = 0x00;

LPC_IOCON->P0_24 |= (1<<0)|(1<<8)|(1<<10);//无过滤 模拟adc 开漏

break;

case 2:

LPC_IOCON->P0_25 = 0x00;

LPC_IOCON->P0_25 |= (1<<0)|(1<<8)|(1<<10);//无过滤 模拟adc 开漏

break;

case 3:

LPC_IOCON->P0_26 = 0x00;

LPC_IOCON->P0_26 |= (1<<0)|(1<<8)|(1<<10);//无过滤 模拟adc 开漏

break;

case 4:

LPC_IOCON->P0_30 = 0x00;

LPC_IOCON->P0_30 |= (3<<0)|(1<<8)|(1<<10);//无过滤 模拟adc 开漏

break;

case 5:

LPC_IOCON->P0_31 = 0x00;

LPC_IOCON->P0_31 |= (3<<0)|(1<<8)|(1<<10);//无过滤 模拟adc 开漏

break;

case 6:

LPC_IOCON->P0_12 = 0x00;

LPC_IOCON->P0_12 |= (3<<0)|(1<<8)|(1<<10);//无过滤 模拟adc 开漏

break;

case 7:

LPC_IOCON->P0_13 = 0x00;

LPC_IOCON->P0_13 |= (3<<0)|(1<<8)|(1<<10);//无过滤 模拟adc 开漏

break;

}

LPC_ADC->CR = 0X00;

LPC_ADC->CR |= (1<<ch)|(div<<8)|(1<<21);//正常工作 非规则转换 并选中响应通道

LPC_ADC->INTEN = 0x00;//禁用全部中断

}

u16 adc_cover(u8 ch)

{

u16 temp;

LPC_ADC->CR &= ~(0x000000ff);

LPC_ADC->CR |= (1<<ch);

LPC_ADC->CR |= 1<<24;//启动转换

while(!(LPC_ADC->GDR &(1u<<31)));//等待转换结束

temp = (u16)((LPC_ADC->GDR & 0x00000fff0)>>4);

return temp;

}

#ifndef __ADC_H_

#define __ADC_H_

#include "common.h"

#define DAC_IO_CON  LPC_IOCON->P0_26

void dac_init(void);

void dac_set_value(u16 value);

#endif

#include "dac.h"

void dac_init(void)

{

//io口初始化

DAC_IO_CON = 0x00;

DAC_IO_CON |= (2<<0)|(1<<16)/*|(1<<10)*/;//使能DAC

LPC_DAC->CTRL = 0x00;//双缓冲禁止,超时禁止 DMA禁止

LPC_DAC->CR = 1<<16;

//  LPC_DAC->CNTVAL = 100;

}

void dac_set_value(u16 value)

{

if(value > 1024)

{

return;

}

else

{

LPC_DAC->CR = (u16)((1<<16)|(value<<6));

}

}

LPC1788的ADC和DAC使用的更多相关文章

  1. DAC杂谈二 ——ADC和DAC常用技术术语

    采集时间 采集时间是从释放保持状态(由采样-保持输入电路执行)到采样电容电压稳定至新输入值的1 LSB范围之内所需要的时间.采集时间(Tacq)的公式如下: 混叠 根据采样定理,超过奈奎斯特频率的输入 ...

  2. 对ADC(DAC)的线性度(INL和DNL)的一点理解 [转]

    大家在使用ADC的时候,往往最关注位数,而对ADC的线性度往往会忽略. 其实这个线性度也是ADC非常重要的指标,ADC(或DAC,其实ADC也是由DAC组成的)线性度指标有两个: INL:翻译过来叫“ ...

  3. SRM32(8)——ADC和DAC

    1.ADC简介 STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC)STM32F103至少拥有2个ADC,STM32F103ZE包含3个ADC,这些 ADC 可 ...

  4. ADC and DAC Analog Filters for Data Conversion

    Figure 3-7 shows a block diagram of a DSP system, as the sampling theorem dictates it should be. Bef ...

  5. PWM实现ADC和DAC

    一.PWM实现AD 利用普通单片机的2个IO及一个运算放大器即可实现AD转换电路,而且很容易扩展成多通道.其占用资源少,成本低,AD 转换精度可以达到8位甚至更高,因此具有一定的实用价值. 1.1 硬 ...

  6. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-4 底层驱动之ADC、DAC

    源视频包下载地址:链接:http://pan.baidu.com/s/1cL37gM 密码:ys1l 银杏科技优酷视频发布区:http://i.youku.com/gingko8

  7. 对于adc dac使用细节

    1. 要更具内部线路图决定引脚分配,adc和dac绑定在一个线路上,所以设计的时候最好尽量间隔三个引脚以上,如果adc必须放到一起,请使用开关控制,但是dma等可能不能正常工作. 2.dac输出内部缓 ...

  8. 嵌入式硬件之ADC/DAC

    嵌入式硬件之ADC/DAC 写在前面 这几天在做一个寒假练项目,其中涉及到了音频的处理,ADC.DAC再次进入到了我的视野,并引起了我新的思考. 1.初次相识 记得去年七月份,本科毕业刚离校,就到研究 ...

  9. STM32应用实例十五:STM32的ADC通道间干扰的问题

    最近我们在开发一个项目时,用到了MCU自带的ADC,在调试过程中发现通道之间村在相互干扰的问题.以前其实也用过好几次,但要求都不高所以没有太关注,此次因为物理量的量程较大,所以看到了变化. 首先来说明 ...

随机推荐

  1. UVA - 11732 "strcmp()" Anyone?左兄弟右儿子trie

    input n 2<=n<=4000 s1 s2 ... sn 1<=len(si)<=1000 output 输出用strcmp()两两比较si,sj(i!=j)要比较的次数 ...

  2. Notes over compiling..

    When compiling VIM on windows, using nmake may be a better choice.. Because so far my attempts to co ...

  3. Java中的五种单例模式实现方法

    [代码] Java中的五种单例模式实现方法   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...

  4. win8.1去掉鼠标右键回收站固定到开始菜单的方法

    win8.1去掉鼠标右键“回收站固定到开始菜单” 平台:win8.1 问题: 桌面“回收站”右键菜单里有个“固定到开始屏幕”,一不小心就误按,设法删之. 打开注册表编辑器.在注册表编辑器里面定位到:H ...

  5. gameUnity 0.15 beta 网络游戏框架

    增加了 换人 和换衣服 ,加入了动画事件.beta版本 0.15测试版本 目前就到此,正式版本 会在7月底  和 0.2版本一起推出.届时,换装系统 将不仅仅是 换装备,而是有 换装后 打怪的体验,更 ...

  6. 一个web项目在myeclipse中add deployment时无法被识别出来的原因

    当我们一个web项目,在myeclipse中,add deployment时,可能发现,根本无法被识别成web项目,可能的原因有:   1. 项目的properties ->Myeclipse ...

  7. Tomcat数据源

    Tomcat数据源原理,配置,使用 在程序中,使用数据源是可以提升操作性能的,这种性能 的提升依靠运行的操作原理. 传统的JDBC操作: 1. 加载数据库驱动,通过CLASSPATH配置 2. 通过D ...

  8. nginx 502错误

    一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现.以下是小编搜集整理的一些Nginx 502错误的排查方法,供参考: Nginx 502错误的原因 ...

  9. oracle有三个默认的用户名和密码,但是都无法登录的解决方法

    system/change_on_install, system/manager是较旧版的预设密码, 在安装较新版时会提示你设定密码, 若没有或忘了设定, 请参考以下重设: sqlplus / as ...

  10. Android] Android XML解析学习——方式比较

     [Android] Android XML解析学习——方式比较 (ZT)  分类: 嵌入式 (From:http://blog.csdn.net/ichliebephone/article/deta ...