嵌入式Linux學習記錄之定時器

2021-10-09 09:46:16 字數 1423 閱讀 7044

記錄一下2020未來的廣交大的linux學習過程--簡化筆記

epit普通定時器

1、epit是32位的乙個向下減一的計數器,不能輸入捕獲或pwm。

2、epit時鐘源可以選擇,ipg_clk=66mhz

3、可以對時鐘源進行分頻,12位的分頻器,0~4095代表1~4096分頻

4、開啟定時器後,計數暫存器會每個時鐘減1,如果和比較暫存器的值相等時觸發中斷

epit有2種工作模式:

set-and-forget  模式、free-running  模式

5、6ull有兩個epit定時器。

epit_cr暫存器用於配置epit    p1563

二、實驗原理簡介

epit_cr  bit0為1,設定epit使能。bit1為1,設定計數器的初始值為載入暫存器的值,bit2為1使能比較中斷。bit3為1設定工作在set-and-forget模式下。bit15-14設定分頻值。bit16軟復位。bit24-25設定時鐘源,設定為1,時鐘源為ipg_clk=66mhz,外設時鐘66mhz。

epit_sr暫存器,只有bit0有效,表示中斷狀態,寫1表示中斷傳送,為0中斷未發生,中斷產生後要清除標誌位。 

epit_lr暫存器設定計數器的載入值,計數器每次計時到0以後就會讀取lr暫存器的值重新開始計時。

cmpr比較計數器,當計數器的值和cmpr相等後就產生比較中斷

gpt定時器

gpt是乙個32位向上計數的計數器 

上公升或下降沿捕獲

支援輸出或中斷功能

12位的分頻器

使用ipg_clk=66mhz時鐘源

gpt定時器有兩種工作模式:restart 和free-run

restart模式下:定時器計數值和比較暫存器ocr的值相等的話定時器就會重新從0開始計時。注意!只有比較通道1才有此功能。

free-run模式:所有3個輸出比較通道都適用,從0開始一直加到0xffffffff,周而復始。

gpt_cr暫存器,bit0位gpt使能位,為0時關閉gpt,為1時使能gpt。

bit1確定gpt定時器計數器的初始值,為0表示預設上次關閉的值,為1從0開始向上計數。

bit6~8 設定為1 時鐘源為ipg-clk=66mhz。

bit9設定gpt定時器工作模式,為0工作在restart,為1工作在free-run.

bit15軟體復位。

gpt_pr暫存器的bit11~0為分頻值。可設定0~4095,表示1~4096分頻。

gpt_sr(狀態)暫存器,bit5表示溢位傳送,bit4和3分別為輸入通道2和1的捕獲中斷標誌位。bit2~0也即是of1~3為比較中斷。

gpt_ir暫存器,就是中斷使能暫存器。bit5中斷溢位使能,bit4和3分別為輸入2通道2和1的捕獲中斷使能位。bit2~0為通道3~1的中斷比較使能位

gpt1_ocr1暫存器設定輸出比較中斷值

嵌入式Linux學習記錄之串列埠

6ull的uart urxd暫存器儲存這串列埠接收到的資料 uart utxd暫存器為傳送資料暫存器,如果需要通過串列埠傳送資料,只需要將資料寫入uart utxd暫存器 uart ucr1 4是串列埠的控制暫存器。uart ucr1的bit0是使能位,為1的時候使能uart。bit14為自動檢測波...

嵌入式學習記錄

1.volatile volatile是宣告該變數是易變的,編譯器把常用的值放在暫存器裡了,所以用的時候,直接在暫存器裡取上一次用的值了 可是因為這個變數是易變的,所以可能這有暫存器的優化處理會帶來錯誤,因此加上volatile告訴編譯器這個變數是易變的,必須每次使用都即時的去改變量的記憶體中讀取,...

嵌入式Linux學習記錄之中斷

記錄一下2020未來的廣交大的linux學習過程 簡化筆記 中斷向量偏移 一般arm從0x0000 0000 位址開始執行,對於stm32設定連線首為0x8000 000。如果 一定要從0x8000 000開始執行,需要告訴soc核心。也就是設定中斷向量偏移。設定scb的vtor暫存器為新的中斷向量...