115|0

82

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【Follow me第二季第3期】扩展任务:控制DAC输出 [复制链接]

 

本项目由于没有示波器,故不能进行演示,而且在默认的样例中给了DAC的工程,这里就详细进行解释。

一、DAC工程目的

该项目使用 ADC 初始化并演示了瑞萨 RA MCU 上的 DAC 模块。用户可以输入允许范围内的 DAC 值(0-4095),转换后的输出将作为 ADC 通道 0 的输入。ADC 输出值打印在 RTT JlinkViewer 上。

硬件连接:将 P014(DAC 输出)连接到 P000(ADC 通道 0)。

二、代码解释

主函数实现流程,先设置参考电压电路控制寄存器,即ADC引脚的寄存器,之后校准 RA2A1 板的 ADC,通过adc_start_calibration函数确定ADC返回状态,加入一个判断,对返回的状态进行判断,如果不是错误代码,就进行ADC和DAC初始化,如果没有错误,就可以进行DA的初始值输入,即输入0-4095之间的值,而后在DAC连接的通道会进行数值的波形显示,同时在RTT的终端进行数值显示。

#if (defined BOARD_RA2A1_EK) || (defined BOARD_RA6T2_MCK)
    /* Set Reference Voltage Circuit Control register */
    R_ADC0->VREFAMPCNT |= ((VREFADCG_VALUE) | (VREFADCG_ENABLE));

    /* Calibrate the ADC for RA2A1 board */
    err = adc_start_calibration ();
    /* handle error */
    if (FSP_SUCCESS != err)
    {
        adc_deinit();
        dac_deinit();
        /* ADC Failure message */
        APP_ERR_PRINT("** ADC Calibrate API failed ** \r\n");
        APP_ERR_TRAP(err);
    }
#endif

这里分别是ADC和DAC的初始化函数声明,分别调用其API,并对返回状态进行判断。

static void adc_deinit(void)
{
    fsp_err_t err = FSP_SUCCESS;

    /* Close ADC module */
#if defined (BOARD_RA6T2_MCK)
    err = R_ADC_B_Close(&g_adc_ctrl);
#else
    err = R_ADC_Close(&g_adc_ctrl);
#endif
    /* Handle error */
    if (FSP_SUCCESS != err)
    {
        /* ADC Close failure message */
        APP_ERR_PRINT("** ADC Close API failed **  \r\n");
    }
}
static void dac_deinit(void)
{
    fsp_err_t err = FSP_SUCCESS;

    /* Close DAC module */
    err = R_DAC_Close(&g_dac_ctrl);
    /* Handle error */
    if (FSP_SUCCESS != err)
    {
        /* DAC Close failure message */
        APP_ERR_PRINT("** DAC Close API failed **  \r\n");
    }
}

APP_PRINT是其默认的打印函数,当调用没问题之后,就可以直接用其打印输出的值。

这个过程就是全DAC项目的实现流程,由于没有示波器,故不能进行演示。

点赞 关注(1)
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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