天天看點

5、CC2541晶片中級教程-OSAL作業系統(PWM+看門狗)

本文根據一周CC2541筆記彙總得來——

适合概覽和知識快速索引——

全部連結:

<a href="http://note.youdao.com/share/?id=df9119fee717b6edb94783fdf193889d&amp;type=note" target="_blank">中級教程-OSAL作業系統\OSAL作業系統-實驗01 OSAL初探</a>

<a href="http://note.youdao.com/share/?id=3b2c233ec1e1db49fffda2c3cecfede7&amp;type=note" target="_blank">【插入】SourceInsight-工程建立方法</a>

<a href="http://note.youdao.com/share/?id=7be6aa7720c35d32de745e930f81585c&amp;type=note" target="_blank">中級教程-OSAL作業系統(OSAL系統解基本套路)</a>

<a href="http://note.youdao.com/share/?id=ca67bdb2fae33fa100a4204b83a41e8a&amp;type=note" target="_blank">中級教程-OSAL作業系統(進一步了解-OLED &amp;&amp; 普通按鍵和5方向按鍵-中斷!!!)這個系統驅動層和應用層不一樣~</a>

<a href="http://note.youdao.com/share/?id=790c5dbdf21d9ba89d599d501b80cfcd&amp;type=note" target="_blank">中級教程-OSAL作業系統(ADC-光敏電阻)</a>

<a href="http://note.youdao.com/share/?id=4b395083390b81e51e18c6b9e5a9230d&amp;type=note" target="_blank">OSAL作業系統-實驗16 序列槽波特率擴充</a>

<a href="http://note.youdao.com/share/?id=e3e9c0c6127b405158e2ea6871ac4b42&amp;type=note" target="_blank">OSAL作業系統-實驗17 AT指令初步</a>

<a href="http://note.youdao.com/share/?id=1e968317ec96c451c31a05fe93e0e0f1&amp;type=note" target="_blank">OSAL作業系統-實驗20 模拟IIC通信+硬體IIC(Mpu6050)</a>

<a href="http://note.youdao.com/share/?id=484c5b658874f0600215ba58e9b1493b&amp;type=note" target="_blank">OSAL 作業系統-實驗 23 PWM 輸出(改變占空比)</a>

<a href="http://note.youdao.com/share/?id=5b1ded2987202b1cc44733846f4d909b&amp;type=note" target="_blank">OSAL 作業系統-實驗 24 看門狗 WachDog</a>

<a href="http://note.youdao.com/share/?id=ec042eaffa0c5fa3eecb59183c6e40dd&amp;type=note" target="_blank">OSAL作業系統-實驗25 SNV内部Flash資料讀寫</a>

<a href="http://note.youdao.com/share/?id=62e89b5ba1db119af09e1e57ebb6eec2&amp;type=note" target="_blank">OSAL 作業系統-實驗 29 系統睡眠等級研究</a>

<a href="http://note.youdao.com/share/?id=5faa6d76fb92366c7b8a1a45af0d823e&amp;type=note" target="_blank">OSAL 作業系統-實驗 31 從機廣播功率修改</a>

一、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 行, 是故意的系統重新開機

本文轉自beautifulzzzz部落格園部落格,原文連結:http://www.cnblogs.com/zjutlitao/p/4779458.html,如需轉載請自行聯系原作者

繼續閱讀