搜索
bottom↓
回复: 13
打印 上一主题 下一主题

请教:计数器在翻转的情况下,如何正确取出两个时刻的...

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2017-1-20 13:56:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求:电平中断方式,对脉冲周期进行计数。
方法:上升沿,第一次进中断,读一次计数器的值,第二次进中断时读取计数器的值,与前者相减,即得出脉冲周期。
问题:在第一次中断读计数器值时,清零,第二次中断读的值很准确。但由于计数器清零会影响到另外一路PWM的输出。故不能对其清零。
如何在不清零的情况下,正确取出计数器的值?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

2
发表于 2017-1-20 15:09:45 | 只看该作者
不清零就是了

出0入0汤圆

3
 楼主| 发表于 2017-1-20 15:16:41 | 只看该作者

不清零,软件咋弄呢?,注释的两行就是没清零。得出的SpdInCnt的值乱跳。。。
  1. void PTB2IE_ISR(void)   
  2. {
  3.     static U08 Flag = 0;
  4.     PTBSC_PTBACK = 1;
  5.     if(Flag == 0)
  6.     {
  7.        Flag = 1;
  8.      //  SpdInCnt = TPM1CNT;
  9.        TPM1CNT = 0;
  10.        return;
  11.     }
  12.    
  13.     if(Flag == 1)
  14.     {
  15.        Flag = 0;
  16.     //   SpdInCnt = TPM1CNT - SpdInCnt;
  17.        SpdInCnt = TPM1CNT;
  18.     }
  19. }
复制代码

出0入0汤圆

4
发表于 2017-1-20 17:02:13 | 只看该作者
直接做减法,原理没问题

出0入0汤圆

5
发表于 2017-1-20 17:03:22 | 只看该作者
只要周期不超过定时器溢出时间就可以这么做,如果超过,还需要对溢出中断计数

出0入0汤圆

6
 楼主| 发表于 2017-1-20 21:54:21 | 只看该作者
wswh2o 发表于 2017-1-20 17:03
只要周期不超过定时器溢出时间就可以这么做,如果超过,还需要对溢出中断计数 ...

计数器周期设置2ms,脉冲周期1ms,直接做减法不清零的情况时,SpdInCnt的值不固定,乱跳,且与理论值相差太大。清零则为理论值,符合要求。

出0入0汤圆

7
发表于 2017-1-21 08:00:11 来自手机 | 只看该作者
减之前做下比较大小么,不清零肯定有溢出么。

出0入0汤圆

8
发表于 2017-1-21 08:17:11 来自手机 | 只看该作者
把溢出中断用上就行了

出0入0汤圆

9
 楼主| 发表于 2017-1-22 23:53:59 | 只看该作者
q457344370 发表于 2017-1-21 08:17
把溢出中断用上就行了

把TPM的溢出中断打开,然后在中断函数中怎么实现? 没想到好的办法。。。

出0入0汤圆

10
 楼主| 发表于 2017-1-22 23:58:14 | 只看该作者
fiddly 发表于 2017-1-21 08:00
减之前做下比较大小么,不清零肯定有溢出么。

TMP值比SpdInCnt大的话,肯定没问题。如果比较结果为小,是否是65536-TMR第一次进中断的值+第二次进中断的值。手上没有板子,明天去试试。

出0入0汤圆

11
 楼主| 发表于 2017-1-23 09:25:12 | 只看该作者
本帖最后由 zw_7627 于 2017-1-23 12:29 编辑

结贴。问题解决了:如果比较结果为小,TPMMOD-TMR第一次进中断的值+第二次进中断的值

出0入0汤圆

12
发表于 2017-1-23 12:28:06 | 只看该作者
定时器比较和溢出?

出0入0汤圆

13
发表于 2017-1-23 14:15:18 | 只看该作者
不要清零,直接减。如果当前值比前一次小,则加上理论周期再减前一次值。

出0入0汤圆

14
发表于 2017-1-23 14:42:40 来自手机 | 只看该作者
zw_7627 发表于 2017-1-22 23:53
把TPM的溢出中断打开,然后在中断函数中怎么实现? 没想到好的办法。。。

记录一次计时中定时器溢出的次数
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-17 22:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表