5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

时间:2023-03-09 08:04:22
5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

本文根据一周CC2541笔记汇总得来——

适合概览和知识快速索引——

全部链接:

中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探

【插入】SourceInsight-工程建立方法

中级教程-OSAL操作系统(OSAL系统解基本套路)

中级教程-OSAL操作系统(进一步了解-OLED && 普通按键和5方向按键-中断!!!)这个系统驱动层和应用层不一样~

中级教程-OSAL操作系统(ADC-光敏电阻)

OSAL操作系统-实验16 串口波特率扩展

OSAL操作系统-实验17 AT命令初步

OSAL操作系统-实验20 模拟IIC通信+硬件IIC(Mpu6050)

OSAL 操作系统-实验 23 PWM 输出(改变占空比)

OSAL 操作系统-实验 24 看门狗 WachDog

OSAL操作系统-实验25 SNV内部Flash数据读写

OSAL 操作系统-实验 29 系统睡眠等级研究

OSAL 操作系统-实验 31 从机广播功率修改

一、PWM 输出(改变占空比)23

常见的就是用蓝牙控制 cc2540或 cc2541 输出 pwm 调整 RGB 灯, 实现各种颜色的调整

实现 P0.3, P0.4, P0.5, 输出 3 路 pwm, 一般这个 pwm, 可以实现 RGB 彩色灯泡的控制。

5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

以上 2 个文件,实现的是 pwm 的初始化与中断与设置。

5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)定义3路引脚

5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

以上为设置 pwm 的初始化,这里, 设置周期的 tick 为 375, 也就是 1.5ms 周期。

5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

为time的中断函数

想控制占空比可以调用PWM_Pulse进行修改(red,green,blue为其值)

5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

是通过将这些参数赋值给比较寄存器来实现的~

5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)

在应用层:
simpleBLETest.c中
5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)
二、看门狗 WachDog
看门狗功能一般有两种:
  • 其一, 预防程序跑飞,当系统程序跑飞后系统自动重启,避免整个大系统停止运行或崩溃。
  • 其二, 这个最常用,就是需要软件重启时使用,例如我们设置了某些参数后期望系统重启,这个时候看门狗也能够派上用场。

Hal_mcu.h

TI 已经做好了看门狗的部分代码, 但是定时 1000ms 的看门狗则没有, 我们加上这个功能:
5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)
144 , 系统复位,实际上就是启动看门狗,然后不喂狗实现重启。
150 , 是我们实现启动 1000ms 定时的看门狗, 1000ms 内需要喂狗, 否则就重启了。
#define HAL_SYSTEM_WATCH_DOG_1000MS() st( WDCTL = 0x00; WDCTL |= 0x08; )式我们添加的代码。
5、CC2541芯片中级教程-OSAL操作系统(PWM+看门狗)
216 行, 喂狗, 避免软件重启
225 行, 定时 1000ms, 1000ms 内需要喂狗, 否则就重启了
235 行, 是故意的系统重启
小结:看门狗还有自动重启的功能!!!协议栈封装的很好,直接调用即可!
中继教程资料链接:http://pan.baidu.com/s/1o6Olppg
中级教程完~