2016年8月22日 星期一

DIY - PIC24:PIC24FJ64GA008 輸入捕捉介紹(四十六)

DIY - PIC24PIC24FJ64GA008 輸入捕捉(Input Capture)介紹(四十六): 

Microchip PIC24FJ 系列器件具有 5 16 位捕捉輸入(Input Capture)模組,輸入捕捉模組用於在輸入引腳上有事件發生時,捕捉來自兩個可選時基之一的計時器值。輸入捕捉功能在需要進行頻率(時間週期)和脈衝測量的應用中相當有用。

PIC24FJ64GA008 輸入捕捉框圖
輸入捕捉模組有多種工作模式,可通過 ICxCON 寄存器選擇,這些工作模式包括:
• 在 ICx 引腳輸入電平的每個下降沿捕捉計時器值
• 在 ICx 引腳輸入電平的每個上升沿捕捉計時器值
• 在 ICx 引腳輸入電平的第 4 個上升沿捕捉計時器值
• 在 ICx 引腳輸入電平的第 16 個上升沿捕捉計時器值
• 在 ICx 引腳輸入電平的每個上升沿和下降沿捕捉計時器值
CPU 休眠和空閒模式期間器件被捕捉引腳信號喚醒 
輸入捕捉模組有 4 FIFO 緩衝器。用戶可以選擇產生 CPU 中斷所需的捕捉事件數。

PIC24 系列器件上的每個捕捉通道都有以下寄存器,寄存器名稱中的 “x” 代表捕捉通道的編號:
ICxCON:輸入捕捉控制寄存器
ICxBUF:輸入捕捉緩衝寄存器

PIC24FJ64GA008 ICxCON:輸入捕捉 x 控制寄存器
PIC24FJ64GA008 ICxCON:輸入捕捉 x 控制寄存器:
bit
Description
bit 15 ~ 14
未實現:讀為0
bit 13
ICSIDL:輸入捕捉 x 在空閒時停止控制位
1 = 輸入捕捉在 CPU 空閒模式將停止
0 = 輸入捕捉在 CPU 空閒模式將繼續工作
bit 12 ~ 8
未實現:讀為 0
bit 7
ICTMR:輸入捕捉 x 計時器選擇位(1)
1 = 發生捕捉事件時捕捉 TMR2 的內容
0 = 發生捕捉事件時捕捉 TMR3 的內容
bit 6 ~ 5
ICI<1:0>:每次中斷的捕捉次數選擇位
11 = 4 次捕捉事件中斷一次
10 = 3 次捕捉事件中斷一次
01 = 2 次捕捉事件中斷一次
00 = 1 次捕捉事件中斷一次
bit 4
ICOV:輸入捕捉x 溢出狀態標誌位元(唯讀)
1 = 發生了輸入捕捉溢出
0 = 未發生輸入捕捉溢出
bit 3
ICBNE:輸入捕捉 x 緩衝器空狀態位元(唯讀)
1 = 輸入捕捉緩衝器非空,至少可以再讀一次捕捉值
0 = 輸入捕捉緩衝器為空
bit 2 ~ 0
ICM<2:0>:輸入捕捉 x 模式選擇位元
111 = 當器件處於休眠或空閒模式時,輸入捕捉僅用作中斷引腳功能(只檢測上升沿,所有其他控制位都不適用)
110 = 未使用(模組被禁止)
101 = 捕捉模式,每 16 個上升沿捕捉一次
100 = 捕捉模式,每 4 個上升沿捕捉一次
011 = 捕捉模式,每個上升沿捕捉一次
010 = 捕捉模式,每個下降沿捕捉一次
001 = 捕捉模式,每個邊沿(上升沿和下降沿)捕捉一次(ICI<1:0> 位元不控制該模式下的中斷產生)
000 = 輸入捕捉模組關閉

初始化:
當輸入捕捉模組被重定或處於 “關閉” 模式(ICM<2:0> = 000)時,輸入捕捉邏輯應:
• 將溢出條件標誌重定為邏輯 0
• 將接收捕捉 FIFO 重定為空狀態
• 復位預分頻計數 

計時器選擇:
每個 PIC24 系列器件都可能有一路或多路輸入捕捉通道。每路通道都可以選擇兩個 16 位計時器之一作為時基。可以通過 ICTMR 控制位(ICxCON<7>)實現計時器源的選擇。計時器可以被設置為使用內部時鐘源(FOSC/4)或使用在 TxCK 引腳上外接的同步外部時鐘源。

輸入捕捉事件模式:
ICx 引腳上有事件發生時,輸入捕捉模組捕捉所選的時基寄存器的 16 位值。可以被捕捉的事件分為以下 3 類: 
1)簡單捕捉事件模式
• 在 ICx 引腳輸入電平的每個下降沿捕捉計時器值
• 在 ICx 引腳輸入電平的每個上升沿捕捉計時器值 
2)在每個邊沿(上升沿和下降沿)捕捉計時器值
3)預分頻捕捉事件模式
• 在 ICx 引腳輸入電平的每 4 個上升沿捕捉計時器值
• 在 ICx 引腳輸入電平的每 16 個上升沿捕捉計時器值通過設置相應的輸入捕捉模式位元 ICM<2:0> ICxCON<2:0>)可以配置上述輸入捕捉模式。

PIC24FJ64GA008 輸入捕捉寄存器映射
2016年 8月 22日 天氣報告
氣溫:26.5@ 22:20
相對濕度:百分之 86%
天氣:天色大致良好

沒有留言:

張貼留言