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时钟。

 

posted @ 2024-03-02 17:17  WCH_CH32  阅读(68)  评论(0编辑  收藏  举报