本文根據一周CC2541筆記匯總得來——
適合概覽和知識快速索引——
全部鏈接:
中級教程-OSAL操作系統\OSAL操作系統-實驗01 OSAL初探
中級教程-OSAL操作系統(進一步了解-OLED && 普通按鍵和5方向按鍵-中斷!!!)這個系統驅動層和應用層不一樣~
OSAL操作系統-實驗20 模擬IIC通信+硬件IIC(Mpu6050)
一、PWM 輸出(改變占空比)23
常見的就是用藍牙控制 cc2540或 cc2541 輸出 pwm 調整 RGB 燈, 實現各種顏色的調整
實現 P0.3, P0.4, P0.5, 輸出 3 路 pwm, 一般這個 pwm, 可以實現 RGB 彩色燈泡的控制。
以上 2 個文件,實現的是 pwm 的初始化與中斷與設置。
定義3路引腳
以上為設置 pwm 的初始化,這里, 設置周期的 tick 為 375, 也就是 1.5ms 周期。
為time的中斷函數
想控制占空比可以調用PWM_Pulse進行修改(red,green,blue為其值)
是通過將這些參數賦值給比較寄存器來實現的~
、
在應用層:
simpleBLETest.c中

二、看門狗 WachDog
看門狗功能一般有兩種:
- 其一, 預防程序跑飛,當系統程序跑飛后系統自動重啟,避免整個大系統停止運行或崩潰。
- 其二, 這個最常用,就是需要軟件重啟時使用,例如我們設置了某些參數后期望系統重啟,這個時候看門狗也能夠派上用場。
Hal_mcu.h
TI 已經做好了看門狗的部分代碼, 但是定時
1000ms
的看門狗則沒有, 我們加上這個功能:

144
行, 系統復位,實際上就是啟動看門狗,然后不喂狗實現重啟。
150 行, 是我們實現啟動 1000ms 定時的看門狗, 1000ms 內需要喂狗, 否則就重啟了。
#define HAL_SYSTEM_WATCH_DOG_1000MS() st( WDCTL = 0x00; WDCTL |= 0x08; )式我們添加的代碼。
150 行, 是我們實現啟動 1000ms 定時的看門狗, 1000ms 內需要喂狗, 否則就重啟了。
#define HAL_SYSTEM_WATCH_DOG_1000MS() st( WDCTL = 0x00; WDCTL |= 0x08; )式我們添加的代碼。

216 行, 喂狗, 避免軟件重啟
225 行, 定時 1000ms, 1000ms 內需要喂狗, 否則就重啟了
235 行, 是故意的系統重啟
225 行, 定時 1000ms, 1000ms 內需要喂狗, 否則就重啟了
235 行, 是故意的系統重啟
小結:看門狗還有自動重啟的功能!!!協議棧封裝的很好,直接調用即可!
中繼教程資料鏈接:http://pan.baidu.com/s/1o6Olppg
中級教程完~