一 在由计数器产生的固定周期的 PWM 信号下,如果其占空比为 0,则 LED 灯不亮;如果其占空比为 100%, 则 LED灯最亮。所以将占空比从 0 到 100%,再从 100%到 0 不断变化,就可以实现 LED 灯的“呼吸”效 果。
实验任务:本节实验任务是使用正点原子 ZYNQ 开发板(核心板)上的 PL LED,实现呼吸灯的效果,即由灭渐亮, 然后再由亮渐灭
由原理图:led为1亮,0灭
二 程序设计
周期信号计数器用于产生驱动 LED 的脉冲信号,本次实验的周期信号频率为 1Khz,其占空比由后级逻 辑在每个周期之后进行递增或递减,最后再对当前计数值和占空比计数值进行比较,以输出占空比可调的 脉冲信号。
重点:根据波形图理解cnt_2us,2ms,2s的区别。
cnt_2us:当计数到最大值归0,其它值做累加操作。 cnt_2ms:当计数到MS_MAX时归0此时us也刚好为0,每计满US_MAX加1. cnt_2s:当计数到最大值归0,此时us和ms也为0,每计满2ms加1。
inc_dec_flag为低电平,led灯由暗变亮,inc_dec_flag为高电平,led灯由亮变暗。当计数到2s取反。
通过cnt_s和cnt_ms实现led占空比=逐渐变大或者变小。当flag为1,led由亮变暗,此时cnt_ms>=cnt_s led为1.当flag为0,led由暗变亮,此时cnt_ms《=cnt_s led为1. 如果当前的周期计数值小于等于占空比计数值,则 LED 输出高电平,即点亮;如果当 前的周期计数值大于占空比计数值,则 LED 输出低电平,即熄灭。