查看: 4888|回复: 10

[求助] 关于kinetis捕获中嵌套溢出中断的问题

[复制链接]
  • TA的每日心情
    难过
    2017-2-9 09:58
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    28

    帖子

    0

    注册会员

    Rank: 2

    积分
    143
    最后登录
    2018-6-29
    发表于 2018-3-7 15:57:19 | 显示全部楼层 |阅读模式
    各位大神好!
           需要测大概55Hz的信号周期,定时器工作在75MHz,计划使用双边沿捕获实现,这样不可避免的计数溢出,定时器不能级联。因为双边沿捕获本身也有中断,请问双边沿捕获里还能数中断次数了吗?  请大神赐教

    我知道答案 目前已有10人回答
    有所收获
    回复

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25454
    最后登录
    2025-9-4
    发表于 2018-3-8 09:35:02 | 显示全部楼层
    你先自己做的哪一步了,目前遇到什么样的困难或者难题吧,这样才方面别人回答啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-2-9 09:58
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    28

    帖子

    0

    注册会员

    Rank: 2

    积分
    143
    最后登录
    2018-6-29
     楼主| 发表于 2018-3-8 15:04:08 | 显示全部楼层
    本帖最后由 moli666 于 2018-3-9 09:12 编辑
    小恩GG 发表于 2018-3-8 09:35
    你先自己做的哪一步了,目前遇到什么样的困难或者难题吧,这样才方面别人回答啊 ...

    非常感谢!现在的问题是一个中断也检测不到。


    有所收获
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-2-9 09:58
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    28

    帖子

    0

    注册会员

    Rank: 2

    积分
    143
    最后登录
    2018-6-29
     楼主| 发表于 2018-3-8 15:04:47 | 显示全部楼层
    本帖最后由 moli666 于 2018-3-9 09:12 编辑
    小恩GG 发表于 2018-3-8 09:35
    你先自己做的哪一步了,目前遇到什么样的困难或者难题吧,这样才方面别人回答啊 ...

    /*******************************************************************************

    有所收获
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-2-9 09:58
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    28

    帖子

    0

    注册会员

    Rank: 2

    积分
    143
    最后登录
    2018-6-29
     楼主| 发表于 2018-3-8 15:07:10 | 显示全部楼层
    本帖最后由 moli666 于 2018-3-9 09:12 编辑
    小恩GG 发表于 2018-3-8 09:35
    你先自己做的哪一步了,目前遇到什么样的困难或者难题吧,这样才方面别人回答啊 ...
    *****************************************************************

    有所收获
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-2-9 09:58
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    28

    帖子

    0

    注册会员

    Rank: 2

    积分
    143
    最后登录
    2018-6-29
     楼主| 发表于 2018-3-8 15:09:25 | 显示全部楼层
    小恩GG 发表于 2018-3-8 09:35
    你先自己做的哪一步了,目前遇到什么样的困难或者难题吧,这样才方面别人回答啊 ...

    我的最终目标是实现:
       Phase_Counter=capture2Val+65536*timeoverCount-capture1Val; 
    有所收获
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25454
    最后登录
    2025-9-4
    发表于 2018-3-8 15:22:13 | 显示全部楼层
    moli666 发表于 2018-3-8 15:09
    我的最终目标是实现:
       Phase_Counter=capture2Val+65536*timeoverCount-capture1Val; 

    我的意思是你能否用文字或者图形清晰的解释问题,而不是只是贴代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-2-9 09:58
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    28

    帖子

    0

    注册会员

    Rank: 2

    积分
    143
    最后登录
    2018-6-29
     楼主| 发表于 2018-3-9 09:15:45 | 显示全部楼层
    小恩GG 发表于 2018-3-8 15:22
    我的意思是你能否用文字或者图形清晰的解释问题,而不是只是贴代码

    多谢您的解答!

    问题综述:用输入捕获的方式测量方波信号上升沿和下降沿之间的时间,需要考虑此期间定时器溢出的问题(溢出是肯定存在的),计数值=通道2值+65536*溢出次数-通道1值。

    问题解决思路:上升沿(通道1)来临时,进中断(开启溢出中断,开启下降沿中断);  
                          每次溢出时,变量++,直到下降沿(通道2)来临;
                          读取数据,计算值

    实际困难:CPU能够响应通道1中断,同时开启溢出中断和通道2下降沿中断后,程序只进一次溢出中断,无法继续执行。

    疑问:是不是对于一个定时器,不能同时开启两个中断(即溢出中断和通道2下降沿中断)??


    FTM_EnableInterrupts(DEMO_FTM_BASEADDR, FTM_CHANNEL_A_INTERRUPT_ENABLE);//开启通道1中断
    EnableIRQ(FTM_INTERRUPT_NUMBER);
    / *  检测通道1中断*/
    while (ftmIsrFlagCha != true)                            
    {               
    }        
    FTM_DisableInterrupts(DEMO_FTM_BASEADDR,FTM_CHANNEL_A_INTERRUPT_ENABLE);//禁止通道1中断
    FTM_EnableInterrupts(DEMO_FTM_BASEADDR,FTM_TIMEOVER_INTERRUPT_ENABLE);//使能溢出中断
    FTM_EnableInterrupts(DEMO_FTM_BASEADDR,FTM_CHANNEL_B_INTERRUPT_ENABLE);//使能通道2中断
    EnableIRQ(FTM_INTERRUPT_NUMBER);

    / *  检测定时器溢出中断,直到通道2下降沿中断来临*/
    while(ftmIsrFlagChb != true)
    {         
                   while (ftmIsrFlagTimeover != true)                            
                   {               
                }     
                   timeoverCount++;                         
                ftmIsrFlagTimeover=false;
    }         
    有所收获
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25454
    最后登录
    2025-9-4
    发表于 2018-3-9 09:51:21 | 显示全部楼层
    你可以使用双边沿检测功能(Dual Edge Capture mode)+溢出中断结合方式,这样可以只用一个通道,通过溢出次数计算双边沿之间具体差了多少的计数时钟
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-2-9 09:58
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    28

    帖子

    0

    注册会员

    Rank: 2

    积分
    143
    最后登录
    2018-6-29
     楼主| 发表于 2018-3-10 12:46:46 | 显示全部楼层
    小恩GG 发表于 2018-3-9 09:51
    你可以使用双边沿检测功能(Dual Edge Capture mode)+溢出中断结合方式,这样可以只用一个通道,通过溢出 ...

            我在程序中测试结果:当禁止溢出中断,可以正常捕获下降沿;当同时开启溢出中断和下降沿中断,只能执行一次溢出中断,然后程序就不继续执行了。

           所以,我想问 FTM3 的 溢出中断和 通道中断 是不是不能 “同时”开启?
    有所收获
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-8 00:58 , Processed in 0.097071 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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