閱讀nrf51_series_reference_manual手冊可知 nrf51822有兩種時鐘源:
其時鐘源來自以下兩種之一,具體取決於hfclksrc的配置。
hfclk crystal oscillator :16 or 32 mhz crystal oscillator
hfclk rc oscillator :16 mhz rc oscillator
hfclk時鐘控制器從hfcl派生出以下時鐘給系統,這些時鐘僅在系統處於on模式時可用。
(當系統處於on模式下時,hfclk rc振盪器將自動啟動,為系統提供所需的時鐘)
hclk:16 mhz高頻時鐘,用於cpu和整個系統。
pclk1m:1 mhz外設時鐘。
pclk16m:16 mhz外設時鐘。
其時鐘源來自以下三種之一
lfclk crystal oscillator:32.768 khz crystal oscillator
lfclk rc oscillator:32.768 khz rc oscillator
lfclk synthesizer:32.768 khz synthesized from hfclk
lfclk時鐘控制器為從lfclk派生的系統提供以下時鐘:
pclk32ki:32.768 khz low frequency clock for peripherals
當系統從off模式轉換到on模式時,lfclk時鐘控制器和所有lfclk時鐘源預設關閉。
關於時鐘部分的基本知識,我覺得這篇部落格寫得很不錯 nrf51822 - 時鐘設定。
如果是要自己設計nrf51822 的外圍電路時,就像我最開始只用了乙個16m的晶振,沒有接外部的32.768k晶振,所以在這個時候使用官方樣例的時候,就需要注意對於系統時鐘初始化的操作了,往往就需要乙個內部rc和外部晶振的轉換設定。關於這方面的設定有很多部落格說明,我參考的部落格是----nrf51822 lrc 內部rc和外部晶振的設定。這裡我就不搬運了,就說以下我在具體操作時**的更改情況。
static void ble_stack_init(void)
在要開始使用定時器的時,我們必須要先開啟對應的時鐘源,所以在學習定時器之前需要先了解整個時鐘系統。
timer 可以在兩種模式下工作,定時器模式和計數器模式。在兩種模式下,timer通過觸發start任務啟動,並通過觸發stop任務停止。定時器停止後,定時器可以通過再次觸發start任務來恢復定時/計數。當恢復計時/計數時,計時器將從停止之前的值繼續。
如果計時器在stop之後不需要被再次啟動,則可以使用shutdown任務代替或執行stop任務。
首先在keil的選單欄處選擇
使用應用定時器主要的函式就是如上圖所示的函式,我們需要配置的引數也就是前三個函式的入口引數。下面將定時每2s 返回一次電量通知的主要**和定義列舉了出來。
其中定時器的模式有兩種:一種是定時一次就結束的定時器,第二種是計時器每次時間到期都會重新啟動。
// create timers
// 啟動應用程式計時器
0 32768#define rounded_div(a, b) (a + b / 2) / b1 16384
3 8192
7 4096
15 2048
31 1024
其中頻率和分頻值關係為
f rtc[khz] = 32.768 / (prescaler + 1 )
所以時鐘分頻數 = 0 時
計算 返回的時鐘滴答數 = ((1000*32768)+1000/2)/1000 = 32768.5
又因為目前時鐘分頻數 = 0 即目前時鐘採用頻率為32.768khz,即一秒鐘產生32768次滴答,因此返回的32768滴答數剛好表示定時了1s。
nrf51822定時器設定
nrf51822 lrc 內部rc和外部晶振的設定
nrf51822 - 時鐘設定
F28335學習(三)定時器
1 定時器的操作原理 f28335有3個32位的通用定時器,分別時timer0,timer1,timer2 我們一般只使用定時器0,在特殊的實時作業系統bios時需要用定時器timer1和timer2 但是如果沒有使用實時作業系統,3個定時器都可以使用。定時器的中斷配置過程按照這個圖來進行,同上面文...
Stm32學習筆記三 定時器TIM
輕則失根,躁則失君 stm32f103系列的微控制器一共有11個定時器,其中 2個高階定時器 tim1和tim8 高階定時器不但具有基本,通用定時器的所有的功能,還具有控制交直流電動 機所有的功能,你比如它可以輸出6路互補帶死區的訊號,剎車功能等等 4個通用定時器 tim2 tim5 除了基本的定時...
定時器 tick 時間輪定時器學習筆記
參考自時間輪的原理和手錶的指標計時類似,將任務結束的時間加入對應最高端的時間輪轉盤中。例如任務結束時間為4 30 20,時間輪盤有三個,分別對應,小時,分鐘和秒。開始時將任務加入4小時所在的時間輪中。四小時過去後,任務的剩餘時間時間為0 30 20就將任務加入30分所在的時間輪中。30分鐘過去後,將...