ADC 配置

点击 Stacks->New Stack-> Analog -> ADC r_adc

先是单通道ADC

默认12位ADC精度,对齐方式扫描(也最常见的方式)

下图是设置回调函数adc_callback,和回调中断优先级为2

在PIN那里选择通道

R_ADC_Open()函数:开启和初始化 ADC 模式(在这里是开启adc0)

/* Initializes the module. */
err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg);
/* Handle any errors. This function should be defined by the user. */
assert (FSP_SUCCESS == err);

R_ADC_ScanCfg()函数: 配置 ADC 扫描参数,赋能 ADC 通道(在这里是赋能adc的通道0)

/* Enable channels. */
err = R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg);
assert (FSP_SUCCESS == err);

R_ADC_ScanStart()函数:启动扫描,若设置为单次扫描,没扫描完一次都需要重新开启

/* Enable scan triggering from ELC events. */
( void ) R_ADC_ScanStart(&g_adc0_ctrl);

回调函数 adc_callback ()(名字是自己定义的):学过51都知道中断吧,差不多的意思

volatile bool scan_complete_flag = false ;
void adc_callback ( adc_callback_args_t * p_args)
{
        FSP_PARAMETER_NOT_USED(p_args);
        scan_complete_flag = true ;
}

故需要在扫描时候在主程序中等待其扫描完毕

scan_complete_flag = false ;
while (!scan_complete_flag)
{
        /* Wait for callback to set flag. */
}

R_ADC_Read()函数:读取单个通道的 ADC 值

err =R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_data1);
assert (FSP_SUCCESS == err);
a1=( double )(adc_data1/ 4095.0 )* 3.3 ;

示例代码:

double a0;
uint16_t adc_data1=0;
volatile bool scan_complete_flag = false;
void adc_callback (adc_callback_args_t * p_args)
{
        FSP_PARAMETER_NOT_USED(p_args);
        scan_complete_flag = true;
}
void hal_entry ( void )
{
        /* TODO : add your own code here */
        fsp_err_t err = FSP_SUCCESS ;
        /* Initializes the module. */
        err = R_ADC_Open(&g_adc0_ctrl, &g_adc0_cfg);
        /* Handle any errors. This function should be defined by the user. */
        assert( FSP_SUCCESS == err);
        /* Enable channels. */
        err = R_ADC_ScanCfg(&g_adc0_ctrl, &g_adc0_channel_cfg);
        assert( FSP_SUCCESS == err);
while (1)
{
        /* Enable scan triggering from ELC events. */
        R_ADC_ScanStart(&g_adc0_ctrl);
        scan_complete_flag = false;
        while (!scan_complete_flag)
        {
                /* Wait for callback to set flag. */
        }
        err =R_ADC_Read(&g_adc0_ctrl, ADC_CHANNEL_0, &adc_data1);
        assert( FSP_SUCCESS == err);
        a0=(adc_data1/4095.0)*3.3;
        R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS );
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
现象:可读取通道 0( P000)电压值a0

RA生态之ADC 采样相关推荐

  1. adc采样的值跳动_嵌入式er必知:模数采样知多少(最全总结)

    [导读]  生活环境周围信号万万千,对于一个嵌入式er.我们利用技术去了解世界.改变世界.而一个产品要与外界物理环境打交道,一个至关重要的触角就是采样真实模拟世界的信号,翻译成芯片可理解的数字信号,进 ...

  2. 【 FPGA 】使用状态机设计一个ADC采样控制电路

    以ADC0809为例,设计一个ADC采样控制电路,采用有限状态机的方式. 传统的ADC采样控制的方法是用单片机控制,单片机控制ADC采样具有编程简单,控制灵活的优点,但是采样速度慢,CPU控制的低速极 ...

  3. 解读ADC采样芯片(EV10AQ190A)的工作模式(单通道模式)

    有了上两篇博文的铺垫,双通道模式以及四通道模式,单通道模式也就很容易理解了,并且我已经想好了下一篇博文要写什么了. 直接看框架图吧: 直接说重点,任意一个输入端口输入的模拟信号同时进入ADC芯片的四个 ...

  4. 解读ADC采样芯片(EV10AQ190A)的工作模式(四通道模式)

    上篇博文讲了EV10AQ190A这种ADC芯片的工作模式:双通道模式 我十分重视这些内容,因为这是我认识硬件工作模式的起点,当然这也只是理论上的内容,实际采样过程中也许会遇到这样那样的问题,那就需要自 ...

  5. 解读ADC采样芯片(EV10AQ190A)的采样(工作)模式(双通道模式)

    工作模式有三种:分别为四通道模式.双通道模式以及单通道模式,这里先简单讲述双通道模式(由于工程中用过双通道模式): 双通道模式组态: 从这张图中可以得到的信息是什么呢? 首先有两个模拟输入,分别为AA ...

  6. 基于android7.1+msm8937读取ADC采样值

    基于android7.1+msm8937读取ADC采样值 读取给设备供电的电压,比如16V,通过监控ADC(Analog-to-Digital Conversion)值来知道电源波动情况和实际给设备供 ...

  7. STM32的ADC采样与多通道ADC采样

    一 单通道采样  参考资料: <STM32库开发实战指南> 刘火良,杨森著 原理性质的东西还是少讲,因为上面那本书里面讲解的很详细了,直接来看硬件电路图 这里使用的是3362电位器(10K ...

  8. matlab 信号去直流,基于FIR滤波的ADC采样信号中直流信号的消除方法与流程

    本发明属于卫星导航领域,介绍了ADC采样信号中的直流偏置消除方法. 背景技术: 卫星导航系统在军事和民用领域应用越来越广泛.以GPS卫星导航系统为例,其到地面的信号功率仅为-130dBm,这么微弱的信 ...

  9. STM32 ADC采样使用内部参考电压

    整理也能进步!写得清楚才能理解更深. [问题背景] 在使用ADC时,通常的用法是Vref+接电源VDD3.3V,然后计算时直接用3.3V做参考电压,但是这种方法忽略了一些情况如供电电压有可能随外部一些 ...

最新文章

  1. linux cdig 工具,linux常用工具su与su -
  2. ecshop的几个小瑕疵
  3. binlog以及Canel
  4. CSS transition 的默认值
  5. ASP.NET MVC 4 (一)路径映射
  6. 第二天:装饰模式及面向对象设计原则4则
  7. 高中必背88个数学公式_俞敏洪:高中干货“必背”1920个固定搭配,英语稳上145分...
  8. php头像上传思路,PHP头像上传,php头像上传_PHP教程
  9. Android camera开发(9)---Dual Camera(MTK solution)开案说明
  10. 推理接口的调用过程(欢迎讨论,希望这是一个大坑~~~)
  11. 操作系统课程设计之页面置换算法(流程模拟)
  12. 如何进入Dos窗口以及了解常用Dos命令
  13. 电音中DJ/Producer/MC/EDM/Remix/Mix的名词解释(转)
  14. SLAM十四讲ch5 joinMap错误解决
  15. SPI NAND flash 简介
  16. 令人敬畏的泰格伍兹 万维钢_5个令人敬畏的全新高级jQuery插件,2013年10月
  17. JavaScript获取浏览器可视区域的宽高
  18. C++ 线性表的结构体定义(顺序表和链式表)
  19. 软件测试职业规划:发展方向多元化
  20. 数据结构课设(散列表的设计与实现---电话号码查找系统)

热门文章

  1. 微信小程序开发流程(附思维导图)
  2. 隔离型串口服务器和西门子1500PLC和通讯案例
  3. java计算机毕业设计Vue框架龙猫宠物交易平台MyBatis+系统+LW文档+源码+调试部署
  4. android源码环境下编译fourthling.cling库的依赖问题
  5. 《纪念碑谷》是如何欺骗人们的视觉的?
  6. 湖南大学计算机专业女生宿舍,湖南高校宿舍条件大比拼!没有对比就没有伤害......
  7. 洛阳旅游网html,毕业设计——基于HTML5的洛阳旅游网站设计与实现
  8. python爬取历史天气
  9. Oracle 函数使用:LPAD RPAD
  10. 113 Three.js的obb (OrientedboundingBox)方向包围盒的使用