新唐N76E003AT20 多通道ADC采集方法

发布者:BlissfulCharm最新更新时间:2022-07-04 来源: csdn关键字:多通道  ADC采集 手机看文章 扫描二维码
随时随地手机看文章

不得不说N76E003的功能在8051内核单片机中功能已经是非常强大了,并且官方开提供了BSP 开发库,这些都是可以直接在官网中直接找到的。对于N76E003的ADC,因为作者没有用过很早之前的版本,作者使用的时候官方已经提供了VBG反推VDD的例程,但是这种做法还是有一些缺陷,因为内部的乘除法运算对于一个8位的单片机来说还是有一定的困难的。但是在实际项目中应该都是需要使用到多个通道轮流采集的情况,所以,在此贴出本人写的在多个通道轮流采集的方法。


if(ADC_BAND_GAP_VOLTAGE_MSK==gAdcActivingChannel)


 {//通道0的宏定义,gAdcActivingChannel是定义的一个全局变量用来进行通道转换,定义的时候赋初值


//为ADC_BAND_GAP_VOLTAGE_MSK


//ADC_BAND_GAP_VOLTAGE_MSK:我定义的是8


 Enable_ADC_BandGap;

 };

 if(ADC_WORK_MODE_LOADING_VOLTAGE_MSK ==gAdcActivingChannel)

 {//宏定义的内容满足宏定义的要求即可,这个宏定义的是5

 Enable_ADC_AIN5;

 };

 if(ADC_B_LOADIND_MSK ==gAdcActivingChannel)

 {//这个宏定义的是1

 Enable_ADC_AIN0;

 };

 clr_ADCF;

 set_ADCS;


    if(ADCF==1||ADCS==0)

  {


 switch(gAdcActivingChannel)

 {

 case ADC_BAND_GAP_VOLTAGE_MSK:

 gVbgAdcResult = (ADCRH<<4) + ADCRL;//获取ADC的采样值


                                        clr_ADCEN;


                                        gAdcActivingChannel=ADC_WORK_MODE_LOADING_VOLTAGE_MSK;//跳转到下一个通道


 break;


                                    case ADC_WORK_MODE_LOADING_VOLTAGE_MSK:

 gAdcLoadingVoltResult1=(ADCRH<<4)+ADCRL;

 clr_ADCEN;

 gAdcActivingChannel=ADC_B_LOADIND_MSK;


 break;


                                    case ADC_B_LOADIND_MSK:

 gAdcBLoadingVolt=(ADCRH<<4)+ADCRL;//读取该通道转换的值

 clr_ADCEN;

 default: 


 gAdcActivingChannel=ADC_BAND_GAP_VOLTAGE_MSK;


                            }


                        }


官网的例程除去用中断的方式都是使用while()轮询等待,这样势必造成阻塞,上面的方法通过去判断ADC转换是否完成进行轮询,如果完成就进入读取该通道的值,如果没有完成则不读取。

关键字:多通道  ADC采集 引用地址:新唐N76E003AT20 多通道ADC采集方法

上一篇:N76E003低功耗的处理
下一篇:单片机sfr和sbit关键字

推荐阅读最新更新时间:2024-11-09 08:53

一种基于stm32的多通道ADC和DMA的设置问题详解
一、多通道ADC和DMA的配置问题: 刚开始不知道怎么去配置,到处找资料发现很多不是很适用。很盲目的找了很久的资料,后来发现官方的固件库里面有很详细的资料。稍微改了一下官方的demo一下就编译成功了。这个例子的启示是:别忙着去网上找现成的例子,启示固件库里面的例程很给力了。 程序需求是开通三个ADC通道分别采集3V 的基准电压、控制反馈温度和环境温度。 因为用示波器测试时发现TED控制PWM的开关的高频噪声耦合到控制地中来了,所以会有一些高频尖刺。我的解决办法是每组数据通过DMA采集100个点,除去最大的10个数和最小的10数然后取平均值。 配置代码如下: uint16_t Rec_buff[100][3]; void DMA
[单片机]
一种基于stm32的<font color='red'>多通道</font><font color='red'>ADC</font>和DMA的设置问题详解
MFG-2000多通道任意波形信号产生器的特点及应用
MFG-2000系列多通道任意波形信号产生器,包含基本款MFG-21XX与进阶款MFG-22XX系列。MFG-21XX系列,其输出包含单通道10M/20M/30M/60MHz的任意波形信号发生器输出;25MHz脉冲信号发生器;160MHz或320MHzRF发生器(MFG-2160MF/MFG-2160MR)与功率放大器(MFG-2120MAonly);MFG-22XX系列,包含30MHz/60MHz等性能双通道任意波形信号产生器输出,25MHz脉冲信号发生器;160MHz或320MHzRF发生器(MFG-2260MFA/MFG-2260MRA)与功率放大器(MFG-2260MFA/MFG-2260MRAonly)。 MFG-2
[测试测量]
STM32采集多路ADC到DMA的方法
最近在做一个手柄,用到了一个游戏摇杆,游戏摇杆的原理就是两个电位器,通过读取ADC的值计算位置,原理和触摸屏类似,那么就需要用到两路ADC了,但是我用的开发板是野火的,火哥给的例程只有单路ADC采集,查阅了相关资料解决了多路的问题,现在我把主要的代码贴在下面,以及一些注意的地方。 #define ADC1_DR_Address ((u32)0x40012400+0x4c) __IO uint16_t ADC_ConvertedValue ; /** * @brief 使能ADC1和DMA1的时钟,初始化PA.0&PA.1 * @param 无 * @retval 无 */ static void ADC1_G
[单片机]
一种多通道视频同步采集方案
  镀锌生产过程中的带钢振动直接影响锌层厚度及均匀性,既降低产品质量,又导致锌液过度消耗,增加生产成本。无论是通过寻找振源从根本上消除振动,还是通过电磁铁等进行主动减振,都离不开振动的检测。为了保护带钢表面,不能采用任何接触式振动检测手段。目前比较常用的检测方案包括涡流探头和光学探头两类,前者为了达到所需要的量程,必须采用大直径的探头,系统造价颇高;后者在多截面测量时又存在多探头数据的同步问题。   探索切实可行的光学检测方案具有重要的现实意义和应用价值。本文介绍的方案以激光三角法测距原理为基础,通过RS485总线广播同步触发信号,实现了多截面振动的同步测量。   1 多截面振动检测系统总体方案   1.1 带钢整体振动检测
[单片机]
一种<font color='red'>多通道</font>视频同步<font color='red'>采集</font>方案
stm32 adc dma多通道采样 数据错位 的解决方法
解决方法:不要采用连续转换模式 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; 需要时才实施转换 ADC_SoftwareStartConvCmd(ADC1, ENABLE); 转换后取消转换 ADC_SoftwareStartConvCmd(ADC1, DISABLE); 经过测试能够解决stm32 adc dma多通道采样 数据错位
[单片机]
STM32f103的数电采集电路的双ADC的设计与使用
STM32F103C8T6拥有3个ADC,其独立使用已经在本文的3.1.3里面有详细的介绍,这里主要是介绍双ADC的同时使用,即STM32的同步规则模式使用。在此模式在规则通道组上执行时,外部触发来自ADC1的规则组多路开关(由ADC1_CR2寄存器的EXTSEL 选择),它同时给ADC2提供同步触发。此功能必须使用DMA通道。同时两组数据是公用一个寄存器,ADC1数据在低16位,ADC2数据在高16位。由于保证数据稳定,在双ADC同步规则模式的情况下,还添加了多通道同时采样。 ADC1和ADC2,工作方式采用了同步规则模式,使得两个ADC可以同时对不同的AD输入进行采集和数据存储和传输,而且相互不影响,也可以确保采样时间的减
[单片机]
STM32—ADC多通道采集电压
ADC详解 前面的博客中详细介绍了STM32中ADC的相关信息,这篇博客是对ADC内容的一个总结提升,ADC的详细介绍:ADC详解 程序说明 为了使这次代码阅读方便,博主没有在头文件中宏定义变量,都是直接采样库函数中的规定形参。此次采用多通道采集电压,使用ADC1的通道10、11、12、13、14、15一共六个通道,采用DMA将转换结果传输至内存。 函数主体 引脚配置 引脚配置的时候,将所有引脚一次性配置好,过于简单,不作详细说明。 void ADC_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_A
[单片机]
低功耗ADC实现“绿色”采集
     很久以前,精确的电气测量是在原始实验室环境中进行的,在这类环境中具有充足的电力供应,时间分配也能确保极高的准确性。而今天,人们希望将仪表携带到现场,让其靠电池电源运行,甚至立即实现更高的准确性。模拟电路与数字电路不同,它不会从较小几何尺寸产生的尺度效应中受益。如果功率消耗较少,那么噪声(精确测量的大敌)实际上将会增加。可以理解,随着新低压工艺的出现,信噪比(SNR)将变得更差,因为信号幅度在减小。那么,在提高性能的同时,模拟信号链怎样才能"走向绿色"呢?   很多高速仪表的核心是一个高速模数转换器(ADC)。例如:金属物体的非破坏性测试就采用了一种类似于医疗超声的成像方法,采用这种方法时,数字图像传感器为高速ADC馈
[电源管理]
低功耗<font color='red'>ADC</font>实现“绿色”<font color='red'>采集</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved