目录
为了方便阅读,本文涉及到的寄存器位在文后已做黄色标注。
定时器之间的同步请看:http://t.csdn.cn/IoD3C
TIMx定时器能够在多种模式下和一个外部的触发同步:复位模式、门控模式和触发模式。
图1 定时器框图
从模式:复位模式
在发生一个触发输入事件时,计数器和它的预分频器能够重新被初始化;同时,如果TIMx_CR1 寄存器的URS位为低,还会产生一个更新事件UEV;然后所有的预装载寄存器(TIMx_ARR, TIMx_CCRx)都会被更新。
在下面的例子中,TI1输入端的上升沿导致向上计数器被清零:
● 配置通道1以检测TI1的上升沿。配置输入滤波器的带宽(在本例中,不需要任何滤波器,因此保持IC1F = 0000)。触发操作中不使用捕获预分频器,所以不需要配置它。CC1S位只选择输入捕获源,即TIMx_CCMR1寄存器中CC1S=01。置TIMx_CCER寄存器中CC1P=0以确定极性(只检测上升沿)。
● 置TIMx_SMCR寄存器中SMS=100,配置定时器为复位模式;置TIMx_SMCR寄存器中 TS =101,选择TI1作为输入源。
● 置TIMx_CR1寄存器中CEN=1,启动计数器。
计数器开始依据内部时钟计数,然后正常运转直到TI1出现一个上升沿;此时,计数器被清零然后从0重新开始计数。同时,触发标志(TIMx_SR寄存器中的TIF位)被设置,根据TIMx_DIER寄 存器中TIE(中断使能)位和TDE(DMA使能)位的设置,产生一个中断请求或一个DMA请求。
下图显示当自动重装载寄存器TIMx_ARR=0x36时的动作。在TI1上升沿和计数器的实际复位之间的延时,取决于TI1输入端的重同步电路。
图2 复位模式下的电路信号
从模式:门控模式
按照选中的输入端电平使能计数器。 在如下的例子中,计数器只在TI1为低时向上计数:
● 配置通道1以检测TI1上的低电平。配置输入滤波器带宽(本例中,不需要滤波,所以保持 IC1F =0000)。触发操作中不使用捕获预分频器,所以不需要配置。CC1S位用于选择输入捕获源,置TIMx_CCMR1寄存器中CC1S=01。置TIMx_CCER寄存器中CC1P=1以确定极性(只检测低电平)。
● 置TIMx_SMCR寄存器中SMS=101,配置定时器为门控模式;置TIMx_SMCR寄存器中 TS =101,选择TI1作为输入源。
● 置TIMx_CR1寄存器中CEN=1,启动计数器。在门控模式下,如果CEN=0,则计数器不能启动,不论触发输入电平如何。
只要TI1为低,计数器开始依据内部时钟计数,在TI1变高时停止计数。当计数器开始或停止时都设置TIMx_SR中的TIF标置。
TI1上升沿和计数器实际停止之间的延时,取决于TI1输入端的重同步电路。
图3 门控模式下的电路信号
从模式:触发模式
输入端上选中的事件使能计数器。
在下面的例子中,计数器在TI2输入的上升沿开始向上计数:
● 配置通道2检测TI2的上升沿。配置输入滤波器带宽(本例中,不需要任何滤波器,保持 IC2F=0000)。触发操作中不使用捕获预分频器,不需要配置。CC2S位只用于选择输入捕获源,置TIMx_CCMR1寄存器中CC2S=01。置TIMx_CCER寄存器中CC2P=1以确定极性 (只检测低电平)。
● 置TIMx_SMCR寄存器中SMS=110,配置定时器为触发模式;置TIMx_SMCR寄存器中 TS=110,选择TI2作为输入源。
当TI2出现一个上升沿时,计数器开始在内部时钟驱动下计数,同时设置TIF标志。
TI2上升沿和计数器启动计数之间的延时,取决于TI2输入端的重同步电路。
图4 触发模式下的电路信号
从模式:外部时钟模式2 + 触发模式
外部时钟模式2可以与另一种从模式(外部时钟模式1和编码器模式除外)一起使用。这时,ETR信号被用作外部时钟的输入,在复位模式、门控模式或触发模式时可以选择另一个输入作为触发输入。不建议使用TIMx_SMCR寄存器的TS位选择ETR作为TRGI。
下面的例子中,TI1上出现一个上升沿之后,计数器即在ETR的每一个上升沿向上计数一次:
1. 通过TIMx_SMCR寄存器配置外部触发输入电路:
─ ETF=0000:没有滤波
─ ETPS=00:不用预分频器
─ ETP=0:检测ETR的上升沿,置ECE=1使能外部时钟模式2
2. 按如下配置通道1,检测TI的上升沿:
─ IC1F=0000:没有滤波
─ 触发操作中不使用捕获预分频器,不需要配置
─ 置TIMx_CCMR1寄存器中CC1S=01,选择输入捕获源
─ 置TIMx_CCER寄存器中CC1P=0以确定极性(只检测上升沿)
3. 置TIMx_SMCR寄存器中SMS=110,配置定时器为触发模式。置TIMx_SMCR寄存器中 TS=101,选择TI1作为输入源。 当TI1上出现一个上升沿时,TIF标志被设置,计数器开始在ETR的上升沿计数。 ETR信号的上升沿和计数器实际复位间的延时,取决于ETRP输入端的重同步电路。
图5 外部时钟模式2 + 触发模式下的电路信号
相关寄存器参考
控制寄存器 1(TIMx_CR1)
偏移地址:0x00
复位值:0x0000
位15:10 | 保留,始终读为0。 |
位9:8 | CKD[1:0]: 时钟分频因子 (Clock division) 定义在定时器时钟(CK_INT)频率与数字滤波器(ETR,TIx)使用的采样频率之间的分频比例。 00:tDTS = tCK_INT 01:tDTS = 2 x tCK_INT 10:tDTS = 4 x tCK_INT 11:保留 |
位7 | ARPE:自动重装载预装载允许位 (Auto-reload preload enable) 0:TIMx_ARR寄存器没有缓冲; 1:TIMx_ARR寄存器被装入缓冲器。 |
位6:5 | CMS[1:0]:选择中央对齐模式 (Center-aligned mode selection) 00:边沿对齐模式。计数器依据方向位(DIR)向上或向下计数。 01:中央对齐模式1。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器 中CCxS=00)的输出比较中断标志位,只在计数器向下计数时被设置。 10:中央对齐模式2。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器 中CCxS=00)的输出比较中断标志位,只在计数器向上计数时被设置。 11:中央对齐模式3。计数器交替地向上和向下计数。配置为输出的通道(TIMx_CCMRx寄存器 中CCxS=00)的输出比较中断标志位,在计数器向上和向下计数时均被设置。 注:在计数器开启时(CEN=1),不允许从边沿对齐模式转换到中央对齐模式。 |
位4 | DIR:方向 (Direction) 0:计数器向上计数; 1:计数器向下计数。 注:当计数器配置为中央对齐模式或编码器模式时,该位为只读。 |
位3 | OPM:单脉冲模式 (One pulse mode) 0:在发生更新事件时,计数器不停止; 1:在发生下一次更新事件(清除CEN位)时,计数器停止。 |
位2 | URS:更新请求源 (Update request source) 软件通过该位选择UEV事件的源 0:如果使能了更新中断或DMA请求,则下述任一事件产生更新中断或DMA请求: − 计数器溢出/下溢 − 设置UG位 − 从模式控制器产生的更新 1:如果使能了更新中断或DMA请求,则只有计数器溢出/下溢才产生更新中断或DMA请求。 |
位1 | UDIS:禁止更新 (Update disable) 软件通过该位允许/禁止UEV事件的产生 0:允许UEV。更新(UEV)事件由下述任一事件产生: − 计数器溢出/下溢 − 设置UG位 − 从模式控制器产生的更新具有缓存的寄存器被装入它们的预装载值。(译注:更新影子寄存器) 1:禁止UEV。不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持它们的值。如果设置了 UG位或从模式控制器发出了一个硬件复位,则计数器和预分频器被重新初始化。 |
位0 | CEN:使能计数器 0:禁止计数器; 1:使能计数器。 注:在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。 触发模式可以自动地通过硬件设置CEN位。 在单脉冲模式下,当发生更新事件时,CEN被自动清除。 |
从模式控制寄存器(TIMx_SMCR)
偏移地址:0x08
复位值:0x0000
位15 | ETP:外部触发极性 (External trigger polarity) 该位选择是用ETR还是ETR的反相来作为触发操作 0:ETR不反相,高电平或上升沿有效; 1:ETR被反相,低电平或下降沿有效。 |
位14 | ECE:外部时钟使能位 (External clock enable) 该位启用外部时钟模式2 0:禁止外部时钟模式2; 1:使能外部时钟模式2。计数器由ETRF信号上的任意有效边沿驱动。 注1:设置ECE位与选择外部时钟模式1并将TRGI连到ETRF(SMS=111和TS=111)具有相同功 效。 注2:下述从模式可以与外部时钟模式2同时使用:复位模式、门控模式和触发模式;但是,这 时TRGI不能连到ETRF(TS位不能是’111’)。 注3:外部时钟模式1和外部时钟模式2同时被使能时,外部时钟的输入是ETRF。 |
位13:12 | ETPS[1:0]:外部触发预分频 (External trigger prescaler) 外部触发信号ETRP的频率必须最多是CK_INT频率的1/4。当输入较快的外部时钟时,可以使 用预分频降低ETRP的频率。 00:关闭预分频; 01:ETRP频率除以2; 10:ETRP频率除以4; 11:ETRP频率除以8。 |
位11:8 | ETF[3:0]:外部触发滤波 (External trigger filter) 这些位定义了对ETRP信号采样的频率和对ETRP数字滤波的带宽。实际上,数字滤波器是一个 事件计数器,它记录到N个事件后会产生一个输出的跳变。 0000:无滤波器,以fDTS采样 1000:采样频率fSAMPLING=fDTS/8,N=6 0001:采样频率fSAMPLING=fCK_INT,N=2 1001:采样频率fSAMPLING=fDTS/8,N=8 0010:采样频率fSAMPLING=fCK_INT,N=4 1010:采样频率fSAMPLING=fDTS/16,N=5 0011:采样频率fSAMPLING=fCK_INT,N=8 1011:采样频率fSAMPLING=fDTS/16,N=6 0100:采样频率fSAMPLING=fDTS/2,N=6 1100:采样频率fSAMPLING=fDTS/16,N=8 0101:采样频率fSAMPLING=fDTS/2,N=8 1101:采样频率fSAMPLING=fDTS/32,N=5 0110:采样频率fSAMPLING=fDTS/4,N=6 1110:采样频率fSAMPLING=fDTS/32,N=6 0111:采样频率fSAMPLING=fDTS/4,N=8 1111:采样频率fSAMPLING=fDTS/32,N=8 |
位7 | MSM:主/从模式 (Master/slave mode) 0:无作用; 1:触发输入(TRGI)上的事件被延迟了,以允许在当前定时器(通过TRGO)与它的从定时器间的 完美同步。这对要求把几个定时器同步到一个单一的外部事件时是非常有用的。 |
位6:4 | TS[2:0]:触发选择 (Trigger selection) 这3位选择用于同步计数器的触发输入。 000:内部触发0(ITR0),TIM1 100:TI1的边沿检测器(TI1F_ED) 001:内部触发1(ITR1),TIM2 101:滤波后的定时器输入1(TI1FP1) 010:内部触发2(ITR2),TIM3 110:滤波后的定时器输入2(TI2FP2) 011:内部触发3(ITR3),TIM4 111:外部触发输入(ETRF) 关于每个定时器中ITRx的细节,参见表1。 注:这些位只能在未用到(如SMS=000)时被改变,以避免在改变时产生错误的边沿检测。 |
位3 | 保留,始终读为0。 |
位2:0 | SMS[2:0]:从模式选择 (Slave mode selection) 当选择了外部信号,触发信号(TRGI)的有效边沿与选中的外部输入极性相关(见输入控制寄存器 和控制寄存器的说明) 000:关闭从模式 – 如果CEN=1,则预分频器直接由内部时钟驱动。 001:编码器模式1 – 根据TI1FP1的电平,计数器在TI2FP2的边沿向上/下计数。 010:编码器模式2 – 根据TI2FP2的电平,计数器在TI1FP1的边沿向上/下计数。 011:编码器模式3 – 根据另一个信号的输入电平,计数器在TI1FP1和TI2FP2的边沿向上/下计 数。 100:复位模式 – 选中的触发输入(TRGI)的上升沿重新初始化计数器,并且产生一个更新寄存 器的信号。 101:门控模式 – 当触发输入(TRGI)为高时,计数器的时钟开启。一旦触发输入变为低,则计 数器停止(但不复位)。计数器的启动和停止都是受控的。 110:触发模式 – 计数器在触发输入TRGI的上升沿启动(但不复位),只有计数器的启动是受控 的。 111:外部时钟模式1 – 选中的触发输入(TRGI)的上升沿驱动计数器。 注:如果TI1F_EN被选为触发输入(TS=100)时,不要使用门控模式。这是因为,TI1F_ED在每 次TI1F变化时输出一个脉冲,然而门控模式是要检查触发输入的电平。 |
从定时器 | ITR0 (TS = 000) | ITR1 (TS = 001) | ITR2 (TS = 010) | ITR3 (TS = 011) |
TIM2 | TIM1 | TIM8 | TIM3 | TIM4 |
TIM3 | TIM1 | TIM2 | TIM5 | TIM4 |
TIM4 | TIM1 | TIM2 | TIM3 | TIM8 |
TIM5 | TIM2 | TIM3 | TIM4 | TIM8 |
DMA/中断使能寄存器(TIMx_DIER)
偏移地址:0x0C
复位值:0x0000
位15 | 保留,始终读为0。 |
位14 | TDE:允许触发DMA请求 (Trigger DMA request enable) 0:禁止触发DMA请求; 1:允许触发DMA请求。 |
位13 | 保留,始终读为0。 |
位12 | CC4DE:允许捕获/比较4的DMA请求 (Capture/Compare 4 DMA request enable) 0:禁止捕获/比较4的DMA请求; 1:允许捕获/比较4的DMA请求。 |
位11 | CC3DE:允许捕获/比较3的DMA请求 (Capture/Compare 3 DMA request enable) 0:禁止捕获/比较3的DMA请求; 1:允许捕获/比较3的DMA请求。 |
位10 | CC2DE:允许捕获/比较2的DMA请求 (Capture/Compare 2 DMA request enable) 0:禁止捕获/比较2的DMA请求; 1:允许捕获/比较2的DMA请求。 |
位9 | CC1DE:允许捕获/比较1的DMA请求 (Capture/Compare 1 DMA request enable) 0:禁止捕获/比较1的DMA请求; 1:允许捕获/比较1的DMA请求。 |
位8 | UDE:允许更新的DMA请求 (Update DMA request enable) 0:禁止更新的DMA请求; 1:允许更新的DMA请求。 |
位7 | 保留,始终读为0。 |
位6 | TIE:触发中断使能 (Trigger interrupt enable) 0:禁止触发中断; 1:使能触发中断。 |
位5 | 保留,始终读为0。 |
位4 | CC4IE:允许捕获/比较4中断 (Capture/Compare 4 interrupt enable) 0:禁止捕获/比较4中断; 1:允许捕获/比较4中断。 |
位3 | CC3IE:允许捕获/比较3中断 (Capture/Compare 3 interrupt enable) 0:禁止捕获/比较3中断; 1:允许捕获/比较3中断。 |
位2 | CC2IE:允许捕获/比较2中断 (Capture/Compare 2 interrupt enable) 0:禁止捕获/比较2中断; 1:允许捕获/比较2中断。 |
位1 | CC1IE:允许捕获/比较1中断 (Capture/Compare 1 interrupt enable) 0:禁止捕获/比较1中断; 1:允许捕获/比较1中断。 |
位0 | UIE:允许更新中断 (Update interrupt enable) 0:禁止更新中断; 1:允许更新中断。 |
状态寄存器(TIMx_SR)
偏移地址:0x10
复位值:0x0000
位15:13 | 保留,始终读为0。 |
位12 | CC4OF:捕获/比较4重复捕获标记 (Capture/Compare 4 overcapture flag) 参见CC1OF描述。 |
位11 | CC3OF:捕获/比较3重复捕获标记 (Capture/Compare 3 overcapture flag) 参见CC1OF描述。 |
位10 | CC2OF:捕获/比较2重复捕获标记 (Capture/Compare 2 overcapture flag) 参见CC1OF描述。 |
位9 | CC1OF:捕获/比较1重复捕获标记 (Capture/Compare 1 overcapture flag) 仅当相应的通道被配置为输入捕获时,该标记可由硬件置’1’。写’0’可清除该位。 0:无重复捕获产生; 1:当计数器的值被捕获到TIMx_CCR1寄存器时,CC1IF的状态已经为’1’。 |
位8:7 | 保留,始终读为0。 |
位6 | TIF:触发器中断标记 (Trigger interrupt flag) 当发生触发事件(当从模式控制器处于除门控模式外的其它模式时,在TRGI输入端检测到有效 边沿,或门控模式下的任一边沿)时由硬件对该位置’1’。它由软件清’0’。 0:无触发器事件产生; 1:触发器中断等待响应。 |
位5 | 保留,始终读为0。 |
位4 | CC4IF:捕获/比较4 中断标记 (Capture/Compare 4 interrupt flag) 参考CC1IF描述。 |
位3 | CC3IF:捕获/比较3 中断标记 (Capture/Compare 3 interrupt flag) 参考CC1IF描述。 |
位2 | CC2IF:捕获/比较2 中断标记 (Capture/Compare 2 interrupt flag) 参考CC1IF描述。 |
位1 | CC1IF:捕获/比较1 中断标记 (Capture/Compare 1 interrupt flag) 如果通道CC1配置为输出模式: 当计数器值与比较值匹配时该位由硬件置’1’,但在中心对称模式下除外(参考TIMx_CR1寄存器 的CMS位)。它由软件清’0’。 0:无匹配发生; 1:TIMx_CNT的值与TIMx_CCR1的值匹配。 如果通道CC1配置为输入模式: 当捕获事件发生时该位由硬件置’1’,它由软件清’0’或通过读TIMx_CCR1清’0’。 0:无输入捕获产生; 1:计数器值已被捕获(拷贝)至TIMx_CCR1(在IC1上检测到与所选极性相同的边沿)。 |
位0 | UIF:更新中断标记 (Update interrupt flag) 当产生更新事件时该位由硬件置’1’。它由软件清’0’。 0:无更新事件产生; 1:更新中断等待响应。当寄存器被更新时该位由硬件置’1’: − 若TIMx_CR1寄存器的UDIS=0、URS=0,当TIMx_EGR寄存器的UG=1时产生更新事件 (软件对计数器CNT重新初始化); − 若TIMx_CR1寄存器的UDIS=0、URS=0,当计数器CNT被触发事件重初始化时产生更新 事件。(参考同步控制寄存器的说明) |
捕获/比较模式寄存器 1(TIMx_CCMR1)
偏移地址:0x18
复位值:0x0000
通道可用于输入(捕获模式)或输出(比较模式),通道的方向由相应的CCxS定义。该寄存器其它 位的作用在输入和输出模式下不同。OCxx描述了通道在输出模式下的功能,ICxx描述了通道在 输出模式下的功能。因此必须注意,同一个位在输出模式和输入模式下的功能是不同的。
位15 | OC2CE:输出比较2清0使能 (Output compare 2 clear enable) |
位14:12 | OC2M[2:0]:输出比较2模式 (Output compare 2 mode) |
位11 | OC2PE:输出比较2预装载使能 (Output compare 2 preload enable) |
位10 | OC2FE:输出比较2快速使能 (Output compare 2 fast enable) |
位9:8 | CC2S[1:0]:捕获/比较2选择 (Capture/Compare 2 selection) 该位定义通道的方向(输入/输出),及输入脚的选择: 00:CC2通道被配置为输出; 01:CC2通道被配置为输入,IC2映射在TI2上; 10:CC2通道被配置为输入,IC2映射在TI1上; 11:CC2通道被配置为输入,IC2映射在TRC上。此模式仅工作在内部触发器输入被选中时(由 TIMx_SMCR寄存器的TS位选择)。 注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=’0’)才是可写的。 |
位7 | OC1CE:输出比较1清0使能 (Output compare 1 clear enable) 0:OC1REF 不受ETRF输入的影响; 1:一旦检测到ETRF输入高电平,清除OC1REF=0。 |
位6:4 | OC1M[2:0]:输出比较1模式 (Output compare 1 enable) 该3位定义了输出参考信号OC1REF的动作,而OC1REF决定了OC1的值。OC1REF是高电平 有效,而OC1的有效电平取决于CC1P位。 000:冻结。输出比较寄存器TIMx_CCR1与计数器TIMx_CNT间的比较对OC1REF不起作用; 001 :匹配时设置通道 1 为有效电平。当计数器 TIMx_CNT 的值与捕获 / 比较寄存器 1 (TIMx_CCR1)相同时,强制OC1REF为高。 010 :匹配时设置通道 1 为无效电平。当计数器 TIMx_CNT 的值与捕获 / 比较寄存器 1 (TIMx_CCR1)相同时,强制OC1REF为低。 011:翻转。当TIMx_CCR1=TIMx_CNT时,翻转OC1REF的电平。 100:强制为无效电平。强制OC1REF为低。 101:强制为有效电平。强制OC1REF为高。 110:PWM模式1- 在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平(OC1REF=0),否 则为有效电平(OC1REF=1)。 111:PWM模式2- 在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电 平。 注1:一旦LOCK级别设为3(TIMx_BDTR寄存器中的LOCK位)并且CC1S=’00’(该通道配置成输 出)则该位不能被修改。 注2:在PWM模式1或PWM模式2中,只有当比较结果改变了或在输出比较模式中从冻结模式 切换到PWM模式时,OC1REF电平才改变。 |
位3 | OC1PE:输出比较1预装载使能 (Output compare 1 preload enable) 0:禁止TIMx_CCR1寄存器的预装载功能,可随时写入TIMx_CCR1寄存器,并且新写入的数 值立即起作用。 1:开启TIMx_CCR1寄存器的预装载功能,读写操作仅对预装载寄存器操作,TIMx_CCR1的 预装载值在更新事件到来时被传送至当前寄存器中。 注1:一旦LOCK级别设为3(TIMx_BDTR寄存器中的LOCK位)并且CC1S=’00’(该通道配置成输 出)则该位不能被修改。 注2:仅在单脉冲模式下(TIMx_CR1寄存器的OPM=’1’),可以在未确认预装载寄存器情况下使 用PWM模式,否则其动作不确定。 |
位2 | OC1FE:输出比较1 快速使能 (Output compare 1 fast enable) 该位用于加快CC输出对触发器输入事件的响应。 0:根据计数器与CCR1的值,CC1正常操作,即使触发器是打开的。当触发器的输入出现一个 有效沿时,激活CC1输出的最小延时为5个时钟周期。 1:输入到触发器的有效沿的作用就象发生了一次比较匹配。因此,OC被设置为比较电平而与 比较结果无关。采样触发器的有效沿和CC1输出间的延时被缩短为3个时钟周期。 该位只在通道被配置成PWM1或PWM2模式时起作用。 |
位1:0 | CC1S[1:0]:捕获/比较1 选择 (Capture/Compare 1 selection) 这2位定义通道的方向(输入/输出),及输入脚的选择: 00:CC1通道被配置为输出; 01:CC1通道被配置为输入,IC1映射在TI1上; 10:CC1通道被配置为输入,IC1映射在TI2上; 11:CC1通道被配置为输入,IC1映射在TRC上。此模式仅工作在内部触发器输入被选中时(由 TIMx_SMCR寄存器的TS位选择)。 注:CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=’0’)才是可写的。 |
位15:12 | IC2F[3:0]:输入捕获2滤波器 (Input capture 2 filter) |
位11:10 | IC2PSC[1:0]:输入/捕获2预分频器 (input capture 2 prescaler) |
位9:8 | CC2S[1:0]:捕获/比较2选择 (Capture/compare 2 selection) 这2位定义通道的方向(输入/输出),及输入脚的选择: 00:CC2通道被配置为输出; 01:CC2通道被配置为输入,IC2映射在TI2上; 10:CC2通道被配置为输入,IC2映射在TI1上; 11:CC2通道被配置为输入,IC2映射在TRC上。此模式仅工作在内部触发器输入被选中时(由 TIMx_SMCR寄存器的TS位选择)。 注:CC2S仅在通道关闭时(TIMx_CCER寄存器的CC2E=’0’)才是可写的。 |
位7:4 | IC1F[3:0]:输入捕获1滤波器 (Input capture 1 filter) 这几位定义了TI1输入的采样频率及数字滤波器长度。数字滤波器由一个事件计数器组成,它记录到N个事件后会产生一个输出的跳变: 0000:无滤波器,以fDTS采样 1000:采样频率fSAMPLING=fDTS/8,N=6 0001:采样频率fSAMPLING=fCK_INT,N=2 1001:采样频率fSAMPLING=fDTS/8,N=8 0010:采样频率fSAMPLING=fCK_INT,N=4 1010:采样频率fSAMPLING=fDTS/16,N=5 0011:采样频率fSAMPLING=fCK_INT,N=8 1011:采样频率fSAMPLING=fDTS/16,N=6 0100:采样频率fSAMPLING=fDTS/2,N=6 1100:采样频率fSAMPLING=fDTS/16,N=8 0101:采样频率fSAMPLING=fDTS/2,N=8 1101:采样频率fSAMPLING=fDTS/32,N=5 0110:采样频率fSAMPLING=fDTS/4,N=6 1110:采样频率fSAMPLING=fDTS/32,N=6 0111:采样频率fSAMPLING=fDTS/4,N=8 1111:采样频率fSAMPLING=fDTS/32,N=8 注:在现在的芯片版本中,当ICxF[3:0]=1、2或3时,公式中的fDTS由CK_INT替代。 |
位3:2 | IC1PSC[1:0]:输入/捕获1预分频器 (Input capture 1 prescaler) 这2位定义了CC1输入(IC1)的预分频系数。 一旦CC1E=’0’(TIMx_CCER寄存器中),则预分频器复位。 00:无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获; 01:每2个事件触发一次捕获; 10:每4个事件触发一次捕获; 11:每8个事件触发一次捕获。 |
位1:0 | CC1S[1:0]:捕获/比较1选择 (Capture/Compare 1 selection) 这2位定义通道的方向(输入/输出),及输入脚的选择: 00:CC1通道被配置为输出; 01:CC1通道被配置为输入,IC1映射在TI1上; 10:CC1通道被配置为输入,IC1映射在TI2上; 11:CC1通道被配置为输入,IC1映射在TRC上。此模式仅工作在内部触发器输入被选中时(由 TIMx_SMCR寄存器的TS位选择)。 注:CC1S仅在通道关闭时(TIMx_CCER寄存器的CC1E=’0’)才是可写的。 |
捕获/比较使能寄存器(TIMx_CCER)
偏移地址:0x20
复位值:0x0000
位15:14 | 保留,始终读为0。 |
位13 | CC4P:输入/捕获4输出极性 (Capture/Compare 4 output polarity) 参考CC1P的描述。 |
位12 | CC4E:输入/捕获4输出使能 (Capture/Compare 4 output enable) 参考CC1E 的描述。 |
位11:10 | 保留,始终读为0。 |
位9 | CC3P:输入/捕获3输出极性 (Capture/Compare 3 output polarity) 参考CC1P的描述。 |
位8 | CC3E:输入/捕获3输出使能 (Capture/Compare 3 output enable) 参考CC1E 的描述。 |
位7:6 | 保留,始终读为0。 |
位5 | CC2P:输入/捕获2输出极性 (Capture/Compare 2 output polarity) 参考CC1P的描述。 |
位4 | CC2E:输入/捕获2输出使能 (Capture/Compare 2 output enable) 参考CC1E的描述。 |
位3:2 | 保留,始终读为0。 |
位1 | CC1P:输入/捕获1输出极性 (Capture/Compare 1 output polarity) CC1通道配置为输出: 0:OC1高电平有效 1:OC1低电平有效 CC1通道配置为输入: 该位选择是IC1还是IC1的反相信号作为触发或捕获信号。 0:不反相:捕获发生在IC1的上升沿;当用作外部触发器时,IC1不反相。 1:反相:捕获发生在IC1的下降沿;当用作外部触发器时,IC1反相。 |
位0 | CC1E:输入/捕获1输出使能 (Capture/Compare 1 output enable) CC1通道配置为输出: 0: 关闭- OC1禁止输出。 1: 开启- OC1信号输出到对应的输出引脚。 CC1通道配置为输入: 该位决定了计数器的值是否能捕获入TIMx_CCR1寄存器。 0:捕获禁止; 1:捕获使能。 |