CH32-DAC噪声与三角波的DMA的使用
一 、功能简介:1.DAC三角波生成器使用,如下图介绍,在系统内部包含一个从0 开始的三角波计数器,在每次触发事件后3个APB1时钟周期后累加1。
计数器的值与DAC_DHRx寄存器的数值相加并丢弃溢出位后写入DAC_DORx 寄存器。在传入DAC_DORx
寄存器的数值小于MAMPx[3:0]位定义的最大幅度时,三角波计数器逐步累加,一旦达到设置的最大
幅度,则计数器开始递减,达到0后再开始累加,周而复始。注意DAC_DHR+MAMP中的数值不要超过4095,要不然会出现高峰三角波夹杂小三角波。
2.DAC 噪声生成器的使用,设置WAVE[1:0]位为‘01’选择DAC噪声生成功能。设置DAC_CTLR寄存器的MAMPx[3:0]位来选择屏蔽部分LFSR的数据。
此时也应注意DAC_DHR+MAMP中的数值不要超过4095,否则也会导致输出杂乱波形。
二、关键代码
1.DAC三角波生成器
此处为DAC_WaveGeneration_Triangle,其他配置同噪声生成器。
2.DAC噪声生成器
此处必须使能触发模式,当前配置为软件触发,噪声范围为12位 (0-4095),输出需加上基础值。
此处设置基础值为0,加上噪声最大值不超过4905.
因为此处为软件触发所以,需要在循环中多次调用。调用间隔不能短于3个
APB1时钟。