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-10ICTSEL2: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 7ICTRIG:ICx 触发 / 同步选择位
1 = 用 SYNCSELx 位指定的源触发 ICx 0 = 用 SYNCSELx 位指定的源同步 ICx
bit 6TRIGSTAT: 定时器触发状态位
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.