日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一起学nRF51xx 8 -  Time

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一起学nRF51xx 8 -  Time 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

Nrf518xx的TIMER有以下幾部分組成(nrf51822有三個定時器--time0/1/2):

1)計數時鐘源。有1M、16M 2種時鐘源。

2)時鐘源分頻器。用來設置分頻,范圍是2的0-9次方。

3)定時/計數模式選擇。用來配置TIMER工作在定時器模式還是計數器模式。

4)定時/計數器位數。8位、16位、24位、32位可選擇。

5)CC[n]寄存器。CC是捕捉、比較的縮寫。CC寄存器有4個。當執行CAPUTURETASK(捕捉任務)的時候,當前內部計數器的值將會立刻被拷貝到CC寄存器。

6)各任務、事件等。

7)當定時器值超過其最大值時,計數器寄存器將溢出,計時器將溢出自動從零開始。

?

TIMER有兩種工作模式:定時模式和計數模式。當處于定時模式,我們稱之為定時器;當

處于計數模式,我們稱之為計數器。2種模式都可以通過START任務來啟動;STOP任務來停止。執行STOP任務停止后的定時器,可以通過重新執行START任務來啟動它。當TIMER處于定時模式的時候,TIMER內部計數器在時鐘每個脈沖來臨的時候計數一次,時鐘的頻率可以按以下公式計算fTIMER = 16 MHz / (2PRESCALER)。

?

當內部計數器的值跟預先設置到CC[n](n=1-3)里面的值相等的時候會觸發相對應的COMPARE[n]事件,如果我們使能了中斷,則會產生中斷。

當TIMER處于計數模式的時候,TIMER內部計數器在COUNT引腳上每個脈沖來臨的時候計數一次。

?

3個任務:

1)START:啟動定時/計數器

2)STOP:停止定時/計數器

3)SHUTDOWN:讓定時/計數器掉電,后續無法通過START來啟動該定時/計數器,除非重新復位。

?

注意事項:

1)定時器/計數器只能在它們已經被停止的狀態下才可以進行配置,否則會造成不可以預知的后果。

2)當處于定時模式的時候,假如fTIMER <=1MHZ,為節能,定時器會自動從PCLK1M時鐘源獲取計數脈沖,而不會使用PCLK16M時鐘源。

?

本節將基于NRF51822芯片實現通過定時器實現對LED的精確控制,實現控制LED閃爍功能。

?

示例詳解

基于硬件平臺:nrf51822ek_tm開發板。

?

?

本示例所用的最小系統板原理圖:

?

  • 工程創建:
  • 打開KEIL,新建一個空工程:Project->NewuVisionProject
  • 工程名為nrfxx-time確認后按下圖選擇芯片為nrf51822_xxAA->ok

    在彈出的對話框中勾選CMSIS中的CORE;Device中的Startup(后面有nrf51Series字樣的);在nrf_device中勾選nrf_gpio, ,nrf_timer,nrf_err并在nrf_Libraries中勾選app_error,nrf_assert模塊。

    ?

    OK之后工程自動生成如下代碼:

    新建一個空白文檔,保存為main.c,并加入工程中:

    配置工程,選擇使用MicroLIB庫,可以減小程序體積:

    加入NRF51定義,并選擇化等級3,可以減小程序體積,但仿真運行時可能會出現與代碼順序不一致現象:

    ?

    調試工具選擇J-LINK,并將接口設置為SW口勾選下載程序后自動復位及運行:

    ?

    ?

  • 工程代碼
  • OK之后在man.c中加入如下代碼:
  • ?

    主函數執行完IO初始化,定時器初始化后就是執行死循環了,在中斷服務函數里面, 執行清除中斷標志、 清除內部計數寄存器的值、 翻轉LED_BLUE_PIN等操作。把程序編譯, 下載到開發板中, 開發板上的藍燈會亮 1S 秒--滅 1S 循環。

    ?

    OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!

    文中源碼資料下載,在公眾號里給十三發消息:

    下載|一起學nRF51xx 8

    ?

    關注十三公眾號

    ?

    總結

    以上是生活随笔為你收集整理的一起学nRF51xx 8 -  Time的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。