天天看點

[nRF51822] 12、基礎實驗代碼解析大全 · 實驗19 - PWM

一、PWM概述:

  PWM(Pulse Width Modulation):脈沖寬度調制技術,通過對一系列脈沖的寬度進行調制,來等效地獲得所需要波形。

  PWM 的幾個基本概念:

1) 占空比:占空比是指在一個周期内,信号處于高電平的時間占整個信号周期的百分比,方波的占空比是50%。

2) 調制頻率:周期的倒數。

3) 脈沖寬度:信号處于高電平的時間。

二、nRF51822的PWM産生:

  NRF51822 通過Timer、PPI 和GPIOTE 的配合實作PWM 的功能,由Timer 産生一個事件,PPI 捕獲這個事件并把這個事件轉化為任務傳遞給GPIOTE, GPIOTE 子產品根據傳遞過來額任務執行操作。NRF51822 實作PWM 的原理框圖如下圖所示:

[nRF51822] 12、基礎實驗代碼解析大全 · 實驗19 - PWM

  由上圖可以看出,實作PWM 功能,需要使用2 個CC 通道,通過設定CC[0]和CC[1]通道的比較值,讓他們在不同的時間産生比較值比對事件,進而觸發GPIOTE 子產品控制管腳在設定的時間點輸出高電平和低電平,這樣,就可以産生不同脈沖寬度的輸出信号,即PWM 輸出信号。

三、代碼解析:

main:

<a></a>

注:PWM參數配置宏定義如下

注:PWM回調函數如下

@nRF51822基礎實驗系列:

<a href="http://www.cnblogs.com/zjutlitao/p/5750342.html" target="_blank">[nRF51822] 7、基礎實驗代碼解析大全(前十)</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5752520.html" target="_blank">[nRF51822] 8、基礎實驗代碼解析大全 · 實驗11 - PPI</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5753079.html" target="_blank">[nRF51822] 9、基礎實驗代碼解析大全 · 實驗12 - ADC</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5753994.html" target="_blank">[nRF51822] 10、基礎實驗代碼解析大全 · 實驗15 - RTC</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5755203.html">[nRF51822] 11、基礎實驗代碼解析大全 · 實驗16 - 内部FLASH讀寫</a>

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

繼續閱讀