imx6ull gpt高精度定時器

2021-09-29 21:31:51 字數 2307 閱讀 7998

gpt 定時器是乙個 32 位向上定時器(也就是從 0x00000000 開始向上遞增計數), gpt 定時器也可以跟乙個值進行比較,當計數器值和這個值相等的話就發生比較事件,產生比較中斷。

gpt 定時器有乙個 12 位的分頻器,可以對 gpt 定時器的時鐘源進行分頻, gpt 定時器特性如下:

①、乙個可選時鐘源的 32 位向上計數器。

②、兩個輸入捕獲通道,可以設定觸發方式。

③、三個輸出比較通道,可以設定輸出模式。

④、可以生成捕獲中斷、比較中斷和溢位中斷。

⑤、計數器可以執行在重新啟動(restart)或(自由執行)free-run 模式。

一共有五個時鐘源,分別為: ipg_clk_24m、 gpt_clk(外部時鐘)、ipg_clk、ipg_clk_32k 和 ipg_clk_highfreq。

gpt 定時器有兩種工作模式:重新啟動(restart)模式和自由執行(free-run)模式,這兩個工作模式的區別如下:

重新啟動(restart)模式:當 gptx_cr(x=1, 2)暫存器的 frr 位清零的時候 gpt 工作在此模式。在此模式下,當計數值和比較暫存器中的值相等的話計數值就會清零,然後重新從0x00000000 開始向上計數,只有比較通道 1 才有此模式!向比較通道 1 的比較暫存器寫入任何

資料都會復位 gpt 計數器。對於其他兩路比較通道(通道 2 和 3),當發生比較事件以後不會復位計數器。

自由執行(free-run)模式:當 gptx_cr(x=1, 2)暫存器的 frr 位置 1 時候 gpt 工作在此模式下,此模式適用於所有三個比較通道,當比較事件發生以後並不會復位計數器,而是繼續計數,直到計數值為 0xffffffff,然後重新回滾到 0x00000000。

**swr(bit15):**復位 gpt 定時器,向此位寫 1 就可以復位 gpt 定時器,當 gpt 復位完成以後此為會自動清零。

frr(bit9):執行模式選擇,當此位為 0 的時候比較通道 1 工作在重新啟動(restart)模式。當此位為 1 的時候所有的三個比較通道均工作在自由執行模式(free-run)。

clksrc(bit8:6):gpt 定時器時鐘源選擇位,為 0 的時候關閉時鐘源;為 1 的時候選擇ipg_clk 作為時鐘源;為 2 的時候選擇 ipg_clk_highfreq 為時鐘源;為 3 的時候選擇外部時鐘為時鐘源;為 4 的時候選擇 ipg_clk_32k 為時鐘源;為 5 的時候選擇 ip_clk_24m 為時鐘源。選擇 ipg_clk 作為 gpt 定時器的時鐘源,因此此位設定位 1(0b001)。

enmode(bit1):gpt 使能模式,此位為 0 的時候如果關閉 gpt 定時器,計數器暫存器儲存定時器關閉時候的計數值。此位為 1 的時候如果關閉 gpt 定時器,計數器暫存器就會清零。

en(bit):gpt 使能位,為 1 的時候使能 gpt 定時器,為 0 的時候關閉 gpt 定時器。

暫存器 gptx_pr 我們用到的重要位就乙個: prescaler(bit11:0),這就是 12 位分頻值,可設定 0~4095,分別對應 1~4096 分頻。

rov(bit5):回滾標誌位,當計數值從 0xffffffff 回滾到 0x00000000 的時候此位置 1。

if2~if1(bit4:3):輸入捕獲標誌位,當輸入捕獲事件發生以後此位置 1,一共有兩路輸入捕獲通道。如果使用輸入捕獲中斷的話需要在中斷處理函式中清除此位。

**of3~of1(bit2:0):**輸出比較中斷標誌位,當輸出比較事件發生以後此位置 1,一共有三路輸出比較通道。如果使用輸出比較中斷的話需要在中斷處理函式中清除此位。接著看一下 gpt 定時器的計數暫存器 gptx_cnt,這個暫存器儲存著 gpt 定時器的當前計數值。最後看一下 gpt 定時器的輸出比較暫存器 gptx_ocr,每個輸出比較通道對應乙個輸出比較暫存器,因此乙個 gpt 定時器有三個 ocr 暫存器,它們的作都是相同的。以輸出比較通道 1 為例,其輸出比較暫存器為 gptx_ocr1,這是乙個 32 位暫存器,用於存放 32 位的比較值。當計數器值和暫存器 gptx_ocr1 中的值相等就會產生比較事件,如果使能了比較中斷的話就會觸發相應的中斷。

高精度整數 6

題目1208 10進製 vs 2進製 題目描述 對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位...

C 高精度定時器

ktimer.h windows graphics programming win32 gdi and directdraw feng yuan publisher prentice hall ptr first edition december 01,2000 高精度納秒計時器,最後修改 2008...

C 高精度定時器

windowsgraphicsprogrammingwin32gdianddirectdraw fengyuan publisher prenticehallptr firsteditiondecember01,2000 高精度納秒計時器,最後修改 usage intmain pragmaonce ...