查看: 7650|回复: 16

[已解决] K60如何输出指定脉冲数?(已解决)

[复制链接]

该用户从未签到

21

主题

62

帖子

0

中级会员

Rank: 3Rank: 3

积分
330
最后登录
1970-1-1
发表于 2014-8-18 11:15:39 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_Robin 于 2014-9-9 13:43 编辑

我最近在用K60驱动步进电机,现在还处于测试阶段,需要控制60输出指定个数的脉冲,我现在想到的就是FTM输出脉冲,然后在用输入捕捉,捕捉到指定个数就关闭FTM,请问大家有没有其他什么好的建议啊?
我知道答案 目前已有16人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-8-18 11:58:56 | 显示全部楼层

    回复:K60如何输出指定脉冲数?

    楼主你好
    如果你是想从外部PWM信号上获取脉冲个数,在指定个数时关闭PWM输出的话,LPTMR的计数模式也可以实现这一功能。
    LPTMRx_CNR增加到LPTMRx_CMR且再来一次脉冲后即触发中断,你可以在中断里关闭PWM输出。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-8-18 13:58:28 | 显示全部楼层

    回复:K60如何输出指定脉冲数?

    你提到的利用FTM输入捕捉,能说一下具体怎么操作吗?
    因为如果你只是把PWM信号给FTM输入引脚并设置FTM为输入捕捉模式,这种情况下每次脉冲都会触发通道中断。
    虽然在中断函数里软件计数作比较也是可以的,但中断太过频繁且大多无意义。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21

    主题

    62

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    330
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-19 16:02:56 | 显示全部楼层

    回复:K60如何输出指定脉冲数?

    回复第 3 楼 于2014-08-18 13:58:28发表:
    你提到的利用FTM输入捕捉,能说一下具体怎么操作吗?
    因为如果你只是把PWM信号给FTM输入引脚并设置FTM为输入捕捉模式,这种情况下每次脉冲都会触发通道中断。
    虽然在中断函数里软件计数作比较也是可以的,但中断太过频繁且大多无意义。
     
     
    功能是需要K60输出指定个数的脉冲,我现在用FTM输出PWM,然后再用一个FTM输入捕捉的,捕捉到指定个数就关闭PWM
    LPTMR的计数功能我之前还没发现,没发现还有这个功能,我来试试看!
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21

    主题

    62

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    330
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-19 16:55:18 | 显示全部楼层

    回复:K60如何输出指定脉冲数?

    回复第 2 楼 于2014-08-18 11:58:56发表:
    楼主你好
    如果你是想从外部PWM信号上获取脉冲个数,在指定个数时关闭PWM输出的话,LPTMR的计数模式也可以实现这一功能。
    LPTMRx_CNR增加到LPTMRx_CMR且再来一次脉冲后即触发中断,你可以在中断里关闭PWM输出。
     
    刚刚看了手册,发现一个问题,在计数模式下是不能产生中断的,我想只能通过定时器读取CNR的值看看是否等于我需要的值,这样就有一个问题,有可能在定时器周期脉冲数超过我需要的值,
    LPTMRx_CMR在计数功能中好像没什么用,是用在定时或者比较功能上面的,当LPTMRx_CNR增加到LPTMRx_CMR且再来一次脉冲后即触发中断,不知我理解的对不对?
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    89

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    378
    最后登录
    1970-1-1
    发表于 2014-8-19 21:50:28 | 显示全部楼层

    RE:K60如何输出指定脉冲数?

    开个定时器也可以的,
    最简单的直接延时循环,循环几次,就几个脉冲,我当时同时控制5个步进,就这样搞的,嘿嘿
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-8-20 11:39:57 | 显示全部楼层

    回复:K60如何输出指定脉冲数?

    回复第 5 楼 于2014-08-19 16:55:18发表:
    回复第 2 楼 于2014-08-18 11:58:56发表:
    楼主你好
    如果你是想从外部PWM信号上获取脉冲个数,在指定个数时关闭PWM输出的话,LPTMR的计数模式也可以实现这一功能。
    LPTMRx_CNR增加到LPTMRx_CMR且再来一次脉冲后即触发中断,你可以在中断里关闭PWM输出。
     
    刚刚看了手册,发现一个问题,在计数模式下是不能产生中断的,我想只能通过定时器读取CNR的值看看是否等于我需要的值,这样就有一个问题,有可能在定时器周期脉冲数超过我需要的值,
    LPTMRx_CMR在计数功能中好像没什么用,是用在定时或者比较功能上面的,当LPTMRx_CNR增加到LPTMRx_CMR且再来一次脉冲后即触发中断,不知我理解的对不对?
     

     

    楼主你好
    LPTMR在计数模式下也是可以产生中断的,就是CNR达到CMR再来个脉冲就会触发进入。
    只是有些芯片的LPTMRx_CNR比较特殊需要先写后读才行,这个要根据你芯片具体型号的参考手册描述来看。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    802

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1763
    最后登录
    1970-1-1
    发表于 2014-9-3 14:59:32 | 显示全部楼层
    中断总要在计数模式下吧, 用参数跳转来设置, 循环而已
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-9-9 13:53:57 | 显示全部楼层
    由于论坛改版,此帖后续回复见https://www.eefocus.com/bbs/article_1280_594158.html
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21

    主题

    62

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    330
    最后登录
    1970-1-1
     楼主| 发表于 2014-9-1 11:26:01 | 显示全部楼层

    回复:K60如何输出指定脉冲数?

    回复第 6 楼 于2014-08-19 21:50:28发表:
    开个定时器也可以的,
    最简单的直接延时循环,循环几次,就几个脉冲,我当时同时控制5个步进,就这样搞的,嘿嘿
     
     
    这个方式还不错,试了下。不过直接延时循环不就干不了其他事了么
     
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 17:08 , Processed in 0.110692 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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