PWM脉宽调制的驱动和应用是嵌入式开发中经常会遇到的问题,基本上现在大部分的控制器都带有PWM 外设模块,软件工程师只要按照手册来操作就可以开发出PWM的驱动程序。当然在实际应用中还要考虑一些其他的问题。今天又有猿友在微信中问关于PWM的驱动问题,今天我们就以Microchip的微控制器PIC18F46K22为例子来说明如何简单的可以开发PWM驱动。首先查看PIC18F46K22数据参考手册可以看到官方给出的步骤为:
按照以上的步骤就可以开发出一个PWM驱动程序,
首先建立PWMtest工程,并模块化驱动程序,添加pwm.h和pwm.c,main.c文件,其他还应添加头文件,配置文件
选择PWM的输出为CCP4输出引脚,CPU跑40M,选择PWM定时器为Timer2
初始化PWM模块
设置PWM周期
计算PRx值
将占空比值写入
使能PWM输出引脚
这样就完成了PWM模块的驱动程序开发,可以通过测试,示波器捕捉来测试PWM的输出是否精确和正确,是否达到设计目的。更改占空比的值测试如下
测试结果如下: 10%占空比,
50%占空比
80%占空比
95% 占空比