本帖最后由 ohy3686 于 2017-10-19 14:58 编辑
【CC2530入门教程-强化练习B】利用PWM实现灯光亮度调节
硬件背景:LED1灯连接到CC2530的P1_0引脚,SW按键连接到CC2530的P0_1引脚。
题目要求:用定时器器1的模模式,实现0.1ms的间隔定时,并由此产生PWM信号输出,通过SW按键控制PWM占空比的变化, 实现LED1灯光从暗逐渐到亮,再从亮逐渐到暗的亮度控制。实现思路:
1. 定义必要的延时函数Delay()和端口初始化函数Init_Port(),在端口初始化函数中,初始化LED1灯和SW按键的相关端口寄存器。
2. 定义定时器1初始化函数Init_Timer1(),使用内部的16MHz晶振的8分频作为时钟输入信号,采用模模式,实现0.1ms的间隔定时。
3. 在定时中断服务函数Timer1_Sevice()中,实现PWM信号输出的相关程序。
4. 设计键盘扫描程序Scan_Keys(),实现PWM占空比的变化控制。
5. 在main()函数中,通过扫描按键控制PWM的占空比,实现对LED1的亮度控制。
参考源码:
|