|
简介:本次实验使用RA6M5的片内外设DAC模块,产生三角波和正弦波,驱动LED,实现呼吸灯效果。
打开用户手册,找到DAC模块,框图如下:
可以看到,这是一个转换精度12为的ADC,有两路输出,在原理图中看到DA0对应的引脚是P014。本次将DAC输出通过杜邦线连接到LED3上。
三、三角波、正弦波实现
fsp_err_t DAC_output(void)
{
static int16_t a=1;
gs_dac_value=(uint16_t)(gs_dac_value+a);
if(gs_dac_value>=0x0FFF)
// if (gs_dac_value >= 0x5)
{
a = -1;
}
else if (gs_dac_value == 0)
{
a = 1;
}
fsp_err_t status = R_DAC_Write(&g_dac0_ctrl, gs_dac_value);
return status;
}
fsp_err_t DAC_output_Sinewave(void)
{
fsp_err_t ret;
uint64_t currenttime=gs_dwTick;
// uint16_t DAC_value=0;
uint64_t t_ms=(currenttime-gs_starttime); //ms
double t_s =(double)t_ms/1000;//(double)(t_ms/1000);
DAC_value=(uint16_t)((sin(t_s)+1)/2*4096);
ret = R_DAC_Write(&g_dac0_ctrl, DAC_value);
return ret;
}
四、实验现象