• 沒有找到結果。

带专用定时器的输入捕捉

在文檔中 的 64/80/100 引脚 (頁 157-161)

 2009 Microchip Technology Inc.

初稿

DS39897B_CN 第 155 页

PIC24FJ256GB110 系列

PIC24FJ256GB110 系列

DS39897B_CN 第 156 页

初稿

 2009 Microchip Technology Inc.

12.1.2 级联 (32 位)模式

默认情况下,每个模块都以其自身的 16 位定时器独立 运行。要提高分辨率,可将相邻的奇偶模块配置为单个 32 位模块。(例如,模块 1 和 2 配对,3 和 4 配对等。)

编号为奇数的模块 (ICx)提供 32 位寄存器对的低 16 位,偶数模块 (ICy)提供高 16 位。 ICx 寄存器的归零 会导致它们对应的ICy 寄存器递增。

级联操作是通过将两个模块的IC32 位(ICxCON2<8>)

置1 在硬件中配置的。

12.2 捕捉操作

输入捕捉模块可配置为在ICx 的上升沿或所有跳变处捕 捉定时器值并产生中断。捕捉可配置为在所有上升沿发 生,或者只在部分上升沿 (每到第4 个或第 16 个)发 生。可单独配置中断,使之在每个事件发生时或在一组 事件发生时产生。

要为捕捉操作设置模块:

1. 将ICx 输入引脚配置为可用外设引脚选择引脚之 一。

2. 如果要使用同步模式,在执行前禁止同步源。

3. 通过读ICxBUF 直到 ICBNE 位(ICxCON1<3>)

清零,确保任何先前数据都已从FIFO 删除。

4. 将SYNCSEL 位(ICxCON2<4:0>)设置为所需 的同步/ 触发源。

5. 将所需的时钟源的ICTSEL位(ICxCON1<12:10>)

置1。

6. 将ICI 位 (ICxCON1<6:5>)设置为所需的中断 频率。

7. 选择同步或触发模式操作:

a) 确认 SYNCSEL 位未设置为

00000。

b) 对于同步模式,清零ICTRIG位(ICxCON2<7>)。

c) 对于触发模式,将 ICTRIG 置 1,清零 TRIGSTAT 位 (ICxCON2<6>)。

8. 将ICM 位(ICxCON1<2:0>)设置为所需的工作 模式。

9. 使能所选的触发/ 同步源。

对于32 位级联操作,设置步骤略有不同:

1. 将两个模块的 IC32 位 (ICyCON2<8> 和 ICxCON2<8>)置 1,先使能偶数编号的模块。

这样可以确保这两个模块同时启动。

2. 将两个模块的ICTSEL 和 SYNCSEL 位置 1,选 择同一个同步/ 触发和时基源。先设置偶数模块,

再设置奇数模块。两个模块都必须使用相同的 ICTSEL 和 SYNCSEL 设置。

3. 清零偶数模块的ICTRIG 位 (ICyCON2<7>);

这会强制该模块运行于与奇数模块同步的模式,

与其触发设置无关。

4. 使用奇数模块的ICI 位 (ICxCON1<6:5>)设置 为所需的中断频率。

5. 使用奇数模块的ICTRIG 位 (ICxCON2<7>)配 置触发或同步模式操作。

6. 使用奇数模块的ICM 位(ICxCON1<2:0>)设置 所需的捕捉模式。

时基和触发/ 同步源使能时,该模块已准备好捕捉事件。

ICBNE 位(ICxCON1<3>)变为置 1 时,FIFO 中至少 有一个捕捉值可用。从 FIFO 读取输入捕捉值,直到 ICBNE 清零。

对于32 位操作,要同时读 ICxBUF 和 ICyBUF 获取完 整的32 位定时器值(ICxBUF 用作低位字,ICyBUF 用 作高位字)。奇数模块的ICBNE 位(ICxCON1<3>)置 1 时,FIFO 缓冲器中至少有一个捕捉值可用。继续读缓 冲寄存器,直到ICBNE 清零 (由硬件自动执行)。

注: 对于同步模式操作,使能同步源作为最后 步骤。两个输入捕捉模块都将保持复位状 态,直到使能同步源。

 2009 Microchip Technology Inc.

初稿

DS39897B_CN 第 157 页

PIC24FJ256GB110 系列

寄存器

12-1: ICxCON1:输入捕捉 x 控制寄存器 1

U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0

— — ICSIDL ICTSEL2 ICTSEL1 ICTSEL0 — —

bit 15 bit 8

U-0 R/W-0 R/W-0 R-0, HC R-0, HC R/W-0 R/W-0 R/W-0

— ICI1 ICI0 ICOV ICBNE ICM2(1) ICM1(1) ICM0(1)

bit 7 bit 0

图注: HC = 硬件清零位

R = 可读位 W = 可写位 U = 未实现位,读为 0

-n = POR 时的值 1 = 置 1 0 = 清零 x = 未知

bit 15-14 未实现:读为

0

bit 13

ICSIDL: 输入捕捉 x 模块在空闲模式下停止的控制位 1 = 在 CPU 空闲模式下输入捕捉模块停止工作 0 = 在 CPU 空闲模式下输入捕捉模块继续工作

bit 12-10

ICTSEL2:ICTSEL0: 输入捕捉定时器选择位

111 = 系统时钟 (F

OSC/2)

110 = 保留 101 = 保留 100 = Timer1 011 = Timer5 010 = Timer4 001 = Timer2 000 = Timer3

bit 9-7 未实现:读为

0

bit 6-5

ICI1:ICI0:选择每次发生中断捕捉的次数的位 11 = 每 4 次捕捉事件中断一次

10 = 每 3 次捕捉事件中断一次 01 = 每 2 次捕捉事件中断一次 00 = 每次捕捉事件中断一次

bit 4

ICOV: 输入捕捉 x 溢出状态标志位 (只读)

1 = 发生了输入捕捉溢出 0 = 未发生输入捕捉溢出

bit 3

ICBNE: 输入捕捉 x 缓冲器空状态位 (只读)

1 = 输入捕捉缓冲器非空,至少可以再读一次捕捉值 0 = 输入捕捉缓冲器为空

bit 2-0

ICM2:ICM0:输入捕捉模式选择位

(1)

111 = 中断模式:当器件处于休眠或空闲模式时,输入捕捉仅用作中断引脚 (只检测上升沿,所有其

他控制位都不适用)

110 = 未使用 (模块被禁止)

101 = 预分频器捕捉模式:每 16 个上升沿捕捉一次 100 = 预分频器捕捉模式:每 4 个上升沿捕捉一次 011 = 简单捕捉模式:每个上升沿捕捉一次 010 = 简单捕捉模式:每个下降沿捕捉一次

001 = 边沿检测捕捉模式:每个边沿 (上升沿和下降沿)捕捉一次, ICI1:ICI0 位不控制该模式下的中

断产生

000 = 输入捕捉模块关闭

1: ICx 输入必须也配置为可用的 RPn 引脚。更多信息,请参见第 9.4 节 “外设引脚选择”。

PIC24FJ256GB110 系列

DS39897B_CN 第 158 页

初稿

 2009 Microchip Technology Inc.

寄存器

12-2: ICxCON2:输入捕捉 x 控制寄存器 2

U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0

— — — — — — — IC32

bit 15 bit 8

R/W-0 R/W-0 HS U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 ICTRIG TRIGSTAT — SYNCSEL4 SYNCSEL3 SYNCSEL2 SYNCSEL1 SYNCSEL0

bit 7 bit 0

图注: HS = 硬件置 1 位

R = 可读位 W = 可写位 U = 未实现位,读为 0

-n = POR 时的值 1 = 置 1 0 = 清零 x = 未知

bit 15-9 未实现:读为

0

bit 8

IC32:级联两个 IC 模块使能位 (32 位操作)

1 = ICx 和 ICy 级联起来用作 32 位模块 (该位必须在两个模块中置 1)

0 = ICx 单独用作 16 位模块

bit 7

ICTRIG:ICx 触发 / 同步选择位

1 = 用 SYNCSELx 位指定的源触发 ICx 0 = 用 SYNCSELx 位指定的源同步 ICx

bit 6

TRIGSTAT: 定时器触发状态位

1 = 定时器源已触发,正在运行 (硬件置 1,可用软件置 1)

0 = 定时器源未触发,保持清零

bit 5 未实现:读为

0

bit 4-0

SYNCSEL4:SYNCSEL0:触发 / 同步源选择位 11111 = 保留

11110 = 输入捕捉 9 11101 = 输入捕捉 6 11100 = CTMU

(1)

11011 = A/D

(1)

11010 = 比较器 3

(1)

11001 = 比较器 2

(1)

11000 = 比较器 1

(1)

10111 = 输入捕捉 4 10110 = 输入捕捉 3 10101 = 输入捕捉 2 10100 = 输入捕捉 1 10011 = 输入捕捉 8 10010 = 输入捕捉 7 1000x = 保留 01111 = Timer 5 01110 = Timer 4 01101 = Timer 3 01100 = Timer 2 01011 = Timer 1 01010 = 输入捕捉 5 01001 = 输出比较 9 01000 = 输出比较 8 00111 = 输出比较 7 00110 = 输出比较 6 00101 = 输出比较 5 00100 = 输出比较 4 00011 = 输出比较 3 00010 = 输出比较 2 00001 = 输出比较 1

00000 = 不与任何其他模块同步

1: 只用这些输入作为触发源,从不用作同步源。

 2009 Microchip Technology Inc.

初稿

DS39897B_CN 第 159 页

PIC24FJ256GB110 系列

在文檔中 的 64/80/100 引脚 (頁 157-161)