请注意,由于 滤波器输入超过 半个刻度或1、2、8, 计算得出的 DPWMB 上升沿 会超过事件 4。 如果 DPWMB 的上升沿 超过事件 4, 当 DPWMA 和 DPWMB 同时加电时, 会产生击穿, 如此处可见。 这在现实中可能会 对电源造成灾难性的 后果。 与此有关的一个方式是对 滤波器输出使用相应的 钳制。 查看滤波器初始化 函数中在 main.c 内 已注释掉的行。 撤销注释这些 行,构建代码, 并将代码下载 至该部分。 随着代码变化, 我们可以将滤波器 全程提高至 最大值而避免击穿, 如此处可见。 此处是滤波器的 占空比输出阶段。 我们以往选择 DPWM 周期 作为输出乘数, 从而滤波器输出 会调制 DPWMB 周期的 占空比。 在我们刚才完成的 代码更改中, 我们将输出 乘数更改为 k comp 0。 这是一个 14 位的值,我们将其设为 等于周期除以 2 以避免击穿。 请注意,我们须 将值右移 4 位, 以针对 k comp 0 与 DPWM 周期寄存器 之间各种对齐进行调整。 与使用滤波器 输出钳制相比, 此代码更改 是处理击穿的 更好选择,因为 它采用 滤波器的 整个动态范围。