CC2530定時器應用 隨記

2021-09-26 06:03:57 字數 1506 閱讀 2376

關於cc2530定時器1和定時器3的使用
一般如果題目**現有乙個現象在持續進行並且會伴隨其他的現象出現,這時候就應該考慮定時器的使用了,2530中的定時器有5個,但是常用的就兩個定時器1和定時器3,它們代表了兩種不同的定時器,定時器1是乙個16位定時器,而定時器3是乙個8位定時器,但是使用時沒有太大的差別。

在使用過程中定時器的使用方法主要有兩種,一種是中斷方式,另一種是查詢方式,查詢相關的中斷標誌位是否被置1,從而確定是否發生了一次定時。

談起定時器,首先想到的是定時器模式的配置問題,一般視問題而定,2530的工作模式選擇共有3種,正/倒計數模式,模模式,自由執行模式。

三種模式中的重點內容:

正/倒計數模式下—>達到t1cc0中的最終計數值後會 跳回0x00 同時標誌位t1if和ovfif被設定

模模式下—>計數器達到最終的t1cc0後會重新計數 計數週期由使用者設定

使用模模式必須開啟通道0的輸出比較模式

自由執行模式—> 最終的值為 0xffff 計數週期也固定為0xffff 達到最大計數後標誌位t1if和ovfif被設定

相關具體的定義可以問度娘,,這裡不再詳述。

在使用定時器的時候最關心的是有關定時器的配置問題,16位和8位定時器的配置還是有區別的:

16位定時器的配置:

①查詢方式:

查詢方式下一般使用的是自由模式,即從0x0000到0xffff反覆計數

t1ctl = 0x0d; // 選擇分頻係數為128分頻,自動重裝載模式

t1stat = 0x21; //開啟定時器1的通道0

主程式中會反覆查詢ircon(中斷未決)是否被置位來確定是否定時器定時到,到一次程式後面會清除一次

可設定乙個變數用於統計次數,來一次的時間大約為1s(128分頻下)

②中斷方式:

定時器在使用過程中通常為了考慮不占用主線程考慮使用中斷的方式,,,16位定時器在配置中斷方式下會使用下面技巧:

•注意不會使用自由執行模式

•注意先填充t1cc0(這裡是定時器1)暫存器

•注意常使用模模式,並且注意開啟通道0的輸出比較模式

•注意開啟中斷標誌位t1ovfim

•注意開啟總中斷和分中斷開關 ea t1ie

•注意中斷向量為t1_vector (定時器1)

•注意在中斷中清除通道標誌位 t1stat &= ~0x01;

8位定時器的配置:

①查詢方式: (自由執行模式)

八位的查詢方式是在主程式中進行和16位一樣的操作,僅僅是將16位的ircon暫存器改變為裡面的t3if,如果判斷ircon也是可以的,但是如果同時出現定時器1和定時器3就不能使用ircon的判斷方法了。

②中斷方式:

•中斷向量為t3_vector

•使用中斷方式的配置方法和定時器1的配置相似,因為是8位定時器所以t3ctl暫存器整合了很多的操作內容

•除此之外只需開啟t3ie 和 ea 即可!

•中斷中將ircon標誌位清除

cc2530 睡眠定時器串列埠顯示

cc2530 睡眠定時器串列埠顯示 第12次次課 睡眠定時器方式喚醒 體會1 切換系統主時鐘16mhz和32mhz 體會2 當串列埠波特率比較高時候 19200 亂碼多,降低後 9600 穩定,主要是因為雙方硬體時鐘不精確 include typedef unsigned char uchar ty...

CC2530之定時器T3

在本次學習中,主要通過定時器t3週期性的控制led的亮滅。首先,先檢視相關電路圖。由圖可知,當cc2530埠1的0號引腳輸出低電平時,led1將被點亮。接下來,先檢視與led p1 0 配置相關的暫存器。埠1功能選擇暫存器 p1sel 這是乙個8位的暫存器,對應埠1的8個引腳,將相應位設為0,表示將...

CC2530定時器配置筆記1(基本定時功能配置)

cc2530有2個8位的定時器,它們分別是定時器3和定時器4。相較於傳統51微控制器的8位定時器來說,cc2530上的定時器具有輸入捕獲 輸出比較 定時器計數方向可變等幾個特點。以定時器3為例,想要通過定時器3進行計時操需要配置t3ctl暫存器 ien1暫存器 timif暫存器。t3xtl是乙個8位...