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 彩色燈泡的控制。

 

以上 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; )式我們添加的代碼。
 
216 行, 喂狗, 避免軟件重啟
225 行, 定時 1000ms, 1000ms 內需要喂狗, 否則就重啟了
235 行, 是故意的系統重啟
 
小結:看門狗還有自動重啟的功能!!!協議棧封裝的很好,直接調用即可!
 
 
 
中繼教程資料鏈接:http://pan.baidu.com/s/1o6Olppg 
中級教程完~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM