捕捉/比较/脉宽调制CCP模块是PIC单片机特有的外围功能模块,它与TMR1和TMR2配合使用实现输入捕捉、输出比较和脉宽调制输出等功能。其中输入捕捉模式用于测量引脚输入信号的周期、频率、脉宽、信号的到达时刻以及消失时刻等。
1.捕捉工作方式的功能
在捕捉方式下,当引脚RC2iCCP1上有事件发生时,CCPRIH∶CCPRIL就捕捉TMR1寄存器16位的值。捕捉工作的事件有如下几种:每一个下降沿、每一个上升沿、每4个上升沿、每16个上升沿。
事件的类型由CCPxCON控制寄存器的CCPlM3∶CCP IMO设定。当捕捉成功,中断请求标志位CCPIIF置位(置位后由软件复位)。当CCP1内容还没有取走,另一捕捉出现时,旧的值就被新的值覆盖。捕捉工作方式的功能框图如图1所示。
图1 捕捉工作方式功能框图
2.捕捉工作方式的工作过程
在捕捉方式中,引脚RC2/CCP1应该设置为输入,即使端口C方向寄存器TRISC的D2置位。如果引脚RC2/CCP1误设为输出,这个端口的写操作会误引起捕捉触发。
在捕捉方式下,TMR1使用定时模式或同步计数模式。在异步计数模式,捕捉模式不能工作。当捕捉模式变化时,会产生虚假的捕捉中断。为了避免虚假中断,必须使COP 1IE保持为0,在操作模式改变时清除中断标志位CCPIIF。
在捕捉模式下有4种预分频设置。在捕捉模式结束或cap不在捕捉模式时,预分频器计数器清0,任何一个RESET都复位预分频计数器。
测试原理如图2所示。在t1时刻以前,把CCP1设置成捕捉脉冲的上升沿,当信号上升沿来到时,发生cap中断,在中断服务程序中捕捉记下此时TMRI寄存器中16位的值TMR11,把CCPI设置成捕捉脉冲的下降沿;当该信号下降沿来时,发生CCP中断,在中断服务程序中记下此时TMR1寄存器中16位的值TMRl2,然后把CCPI设置成捕捉脉冲的上升沿:
图2 CCP模块测试原理图
当该信号的又一上升沿来时,又发生CCP中断,在中断服务程序中记下此时TMR1寄存器中16位的值TMR13,则信号的周期T=(TMR13-TMR11)μs,信号的频率为f= 1/T,脉冲的宽度Tp=(TMRl2-TMRl1)μS,占空比D=Tp/T×100%。因为COP捕捉方式可能发生的误差为±1μs,可把以上过程多进行几次,再把各次测试的平均值作为的测量值。
如果实际应用中两次捕捉中断的时间间隔小于1次中断服务时间,则可以通过设置寄存器CCPICON的值,使COP模块每4个脉冲上升沿捕捉1次或每16个脉冲上升沿捕捉1次,这样两次中断的时间间隔就增大了;如果还不能达到要求,则可用分频器对输入频率信号分频处理后,再由CCP1引脚输入。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。