网上能找到一些ColdFire的PWM的驱动,但是找到的都是通道没有级联的。一般为了提高调节精度,我们都会使用级联的PWM波,下面就实现PWM级联的方法。
在MCF52259_PWM.h 中有如下定义:
#define MCF_PWM_PWMPER0 (*(vuint8 *)(0x401B0014))
#define MCF_PWM_PWMPER1 (*(vuint8 *)(0x401B0015))
#define MCF_PWM_PWMPER2 (*(vuint8 *)(0x401B0016))
#define MCF_PWM_PWMPER3 (*(vuint8 *)(0x401B0017))
#define MCF_PWM_PWMPER4 (*(vuint8 *)(0x401B0018))
#define MCF_PWM_PWMPER5 (*(vuint8 *)(0x401B0019))
#define MCF_PWM_PWMPER6 (*(vuint8 *)(0x401B001A))
#define MCF_PWM_PWMPER7 (*(vuint8 *)(0x401B001B))
级联以前的两个通道的PWM的周期寄存器和占空比寄存器都是8位的寄存器,但是相邻通道的周期寄存器的和占空比寄存器在地址上是连续的,比如通道0的周期寄存器地址为0x401B0014,通道1的周期寄存器的地址为0x401B0015,所以我们对通道0的地址做如下定义:

本文介绍了在MCF52259嵌入式系统中如何实现PWM波的级联,以提高调节精度。通过分析冷火系列CPU的PWM寄存器特性,提出了一种直接操作级联后PWM周期寄存器的方法,简化了级联过程中的占空比设置步骤。
最低0.47元/天 解锁文章
2283

被折叠的 条评论
为什么被折叠?



