在捕捉模式下,当对应的CCPx 引脚上有事件发生时,CCPRxH:CCPRxL 寄存器对将捕捉TMR1 寄存器或TMR3 寄存器的16 位值。事件定义为下列情况之一:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
• 每个下降沿
• 每个上升沿
• 每4 个上升沿
• 每16 个上升沿
u 通过模式选择位CCPxM3:CCPxM0(CCPxCON<3:0>)选择事件类型。当一个捕捉发生时,中断请求标志位CCPxIF 置1,它必须用软件清零。如果在读取寄存器CCPRx 之前发生了另一个捕捉,那么之前捕捉的值将被新捕捉的值覆盖。
u 在捕捉模式下,应该通过将相应的TRIS 方向位置1 来将CCPx 引脚配置为输入
注: 如果RB3/CCP2 或RC1/CCP2 引脚被配置为输出,对该端口的写操作会产生捕捉条件。
u 用于捕捉功能的定时器(Timer1 和/ 或Timer3)必须运行在定时器模式或同步计数器模式。在异步计数器模式下,无法进行捕捉操作。用于每个CCP 模块的定时器由T3CON 寄存器选择。
u 当捕捉模式改变时,可能会产生错误捕捉中断。用户应该保持CCPxIE 中断使能位清零,以避免错误中断。还应该在工作模式发生任何改变之后清零中断标志位CCPxIF。
u 在捕捉模式下有4 种预分频比值设置,它们可作为工作模式的一部分由模式选择位(CCPxM3:CCPxM0)选择。每当关闭CCP 模块或禁止捕捉模式时,预分频计数器就将被清零。这意味着任何复位都将清零预分频计数器。
下面是在SP9608-PIC单片机增强型开发板调试的直流电机测速实验源程序,将RC2/CCP1引脚设置为输入引脚,由光电传感器将电机运行的速度转换成脉冲信号加到RC2/CCP1引脚上,程序中启动CCP模块的捕捉功能来测量脉冲信号的周期,通过计算换算成电机运行的速度值在数码管上显示出来。
测试硬件环境: SP9608-PIC单片机增强型开发板 1台
PIC<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />18F4520单片机 1片
5.9V的微型直流电机 1个
光电传感器 1个
实验导线 若干
测试软件环境: MPLAB7.50集成开发环境
MCC18编译器
网址: www.supermcu.com
文章评论(0条评论)
登录后参与讨论