打印

请教STC的PCA捕获问题

[复制链接]
16489|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lxc806705|  楼主 | 2011-6-8 10:42 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
在STC的datasheet中,说PCA用作捕获模式时,检测的外部脉冲沿变化会将计数器CH,CL的值装入CCAPnL,CCAPnH,然后置位相应的中断标志CCFn:
对于这里我有一点不解,比如说要用到两路PCA,CCAPM0配置为16位软件定时器,来产生一个5-10HZ的脉冲(由于频率很低,PWM实现不了)
另一路CCAPM1作为捕获模式,上升沿有效,来扩展外部中断。由于CCAPM0作为定时器CH,CL一直在增加,而CCAPM1在检测到外部上升沿之后会将
CH,CL采入CCAP0L,CCAP0H,这个会不会对软件定时器造成影响?如果没有影响的话那捕获模块为什么要有这么一个装入计数值的动作?这个动作的必要性在哪里?
我没搞清楚这个。

另外,datashet中采用了(软件定时器)在中断中每次CCAP0L,CCAP0H增加固定值的方法,为什么不是在中断中清0CH,CL呢?
如果设置CCAP0L,CCAP0H为固定值,(初始化中),清0CH,CL可能实现功能吗?我在网上没有找到这些东西的解释。
诚心求教,盼用过这个东西的童鞋指教一下。

相关帖子

沙发
lxc806705|  楼主 | 2011-6-8 11:38 | 显示全部楼层
么人用过么?:o

使用特权

评论回复
板凳
lxc806705|  楼主 | 2011-6-8 12:33 | 显示全部楼层
不能清0看来只有让CCAPnLCCAPnH加一个固定值了,因为我现在只用了1个软件定时器,定时器0和1的TH,TL可以清0,为什么这里不可以呢?coody可以帮我解惑下麼?
多谢3,4楼回帖嘿嘿:D

使用特权

评论回复
地板
lxc806705|  楼主 | 2011-6-9 09:43 | 显示全部楼层
多谢coody,那么我还是在终端中加固定值来实现吧

使用特权

评论回复
5
lxc806705|  楼主 | 2011-6-10 08:39 | 显示全部楼层
还好,我其实是想用软件定时器来产生10hz的波形,所以这个误差大点也无所谓,因为本身精度要求就不高,另外定时器0,1已经被占用,所以很无奈要用pca定时来产生脉冲

使用特权

评论回复
6
lxc806705|  楼主 | 2011-6-13 10:14 | 显示全部楼层
误差来之,中断里的累加运算所需要的时间
10# coody
gurong60 发表于 2011-6-10 09:42

这的确是个问题,不过还好我的要求比较低的说,我突然思维有点混乱了
只要中断程序没完,那么计数器便不会计数,那么整个中断程序不是都导致误差?
那么定时器0和1怎么处理这个问题的?有点迷糊了,可能脑袋不太清醒

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

154

帖子

1

粉丝