查看: 10990|回复: 15

[MQX] MQX中的void _time_delay_until用法(已解决)

[复制链接]

该用户从未签到

25

主题

125

帖子

0

中级会员

Rank: 3Rank: 3

积分
318
最后登录
2021-1-17
发表于 2014-5-25 21:47:36 | 显示全部楼层 |阅读模式
 在MQX任务中想使用void _time_delay_until(MQX_TICK_STRUCT_PTR  tick_time_ptr),函数来保证它们具有固定的
执行频率。假如,10Hz或者20Hz的执行频率,如何调用?谢谢。
MQX_Reference_Manual这个PDF中例子很少,没有很好的起到对初学者指导的作用。
我知道答案 目前已有15人回答
回复

使用道具 举报

该用户从未签到

25

主题

125

帖子

0

中级会员

Rank: 3Rank: 3

积分
318
最后登录
2021-1-17
 楼主| 发表于 2014-5-25 21:59:00 | 显示全部楼层

RE:MQX中的void _time_delay_until用法

应该是用这个吧
_time_init_ticks(
MQX_TICK_STRUCT_PTR tick_time_ptr,
_mqx_uint ticks);
求指导
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-5-26 09:29:12 | 显示全部楼层

    回复:MQX中的void _time_delay_until用法

    楼主你好
    感谢你对飞思卡尔产品的关注,我们MQX工程师稍后将会与你讨论这个问题。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25

    主题

    125

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    318
    最后登录
    2021-1-17
     楼主| 发表于 2014-5-26 09:45:37 | 显示全部楼层

    RE:MQX中的void _time_delay_until用法

    谢谢。
    还需要请教的问题是
    1)_time_delay与_usr_time_delay区别是什么?有这样一句话没太理解。什么是User Task?或者什么是 CPU User mode?

    These functions are equivalents to _time_delay …API calls but they can be executed from within the User
    task or other code running in the CPU User mode.
    2)_time_delay(100),如果我执行这句话,任务将被挂起(或是暂停),那等100ms时间到时,是否像中断出栈那样,这个被挂起的任务执行从_time_delay(100)之后开始执行?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    351

    帖子

    0

    高级会员

    Rank: 4

    积分
    973
    最后登录
    1970-1-1
    发表于 2014-5-26 14:56:46 | 显示全部楼层

    回复:MQX中的void _time_delay_until用法

    看看这个是不是
    http://community.freescale.com/thread/99630
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-5-26 15:00:23 | 显示全部楼层

    RE:MQX中的void _time_delay_until用法

    _time_delay 将活动的任务挂起指定的毫秒数
    _time_delay_until 将活动的任务挂起直到指定的滴答时间
    _usr_time_delay我在手册中没有找到对应的说明。
    2、如楼主理解的一样。这个就是在这里等待100ms,100ms以后接着后面的继续执行。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    196

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    380
    最后登录
    1970-1-1
    发表于 2014-5-26 15:05:10 | 显示全部楼层

    回复:MQX中的void _time_delay_until用法

    回复第 2 楼 于2014-05-25 21:59:00发表:
    应该是用这个吧
    _time_init_ticks(
    MQX_TICK_STRUCT_PTR tick_time_ptr,
    _mqx_uint ticks);
    求指导
     

     
    楼主请参考下面例子/*TASK*-----------------------------------------------------* * Task Name    : t2_task* Comments     :*    This task prints " Hello World "**END*-----------------------------------------------------*/void t2_task( uint_32 initial_data ){   uint_32 i;   TIME_STRUCT t;   DATE_STRUCT d;   MQX_TICK_STRUCT mt;       d.YEAR = 2014;    d.MONTH = 5;    d.DAY = 26;    d.HOUR = 15;    d.MINUTE = 00;   d.SECOND = 0;   d.MILLISEC = 0;      _time_from_date(&d,&t);   _time_set(&t);      _time_get_elapsed(&t);   while (1) {      t.SECONDS++;      _time_to_ticks(&t,&mt);      _time_delay_until(&mt);      printf("tick2\n");    }} 
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25

    主题

    125

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    318
    最后登录
    2021-1-17
     楼主| 发表于 2014-5-26 21:54:17 | 显示全部楼层

    回复:MQX中的void _time_delay_until用法

    我参考的是RTOS – Reference Manual   MQXRM---Rev. 16/02/2014版本。
    _usr_time_delay里面有介绍,但是不太理解。。。

     
     
    回复第 6 楼 于2014-05-26 15:00:23发表:
    _time_delay 将活动的任务挂起指定的毫秒数
    _time_delay_until 将活动的任务挂起直到指定的滴答时间
    _usr_time_delay我在手册中没有找到对应的说明。
    2、如楼主理解的一样。这个就是在这里等待100ms,100ms以后接着后面的继续执行。
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25

    主题

    125

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    318
    最后登录
    2021-1-17
     楼主| 发表于 2014-5-26 22:02:23 | 显示全部楼层

    回复:MQX中的void _time_delay_until用法

    回复第 7 楼 于2014-05-26 15:05:10发表:
    回复第 2 楼 于2014-05-25 21:59:00发表:
    应该是用这个吧
    _time_init_ticks(
    MQX_TICK_STRUCT_PTR tick_time_ptr,
    _mqx_uint ticks);
    求指导
     

     谢谢,这个是把 t格式 转化mt格式,时间向Ticks转化,不同时间数据结构的转化。但是我如果要_time_delay_until:10ms,怎么实现?我有点晕。。。
     
    楼主请参考下面例子/*TASK*-----------------------------------------------------* * Task Name    : t2_task* Comments     :*    This task prints " Hello World "**END*-----------------------------------------------------*/void t2_task( uint_32 initial_data ){   uint_32 i;   TIME_STRUCT t;   DATE_STRUCT d;   MQX_TICK_STRUCT mt;       d.YEAR = 2014;    d.MONTH = 5;    d.DAY = 26;    d.HOUR = 15;    d.MINUTE = 00;   d.SECOND = 0;   d.MILLISEC = 0;      _time_from_date(&d,&t);   _time_set(&t);      _time_get_elapsed(&t);   while (1) {      t.SECONDS++;      _time_to_ticks(&t,&mt);      _time_delay_until(&mt);      printf("tick2\n");    }} 
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-5-27 11:04:29 | 显示全部楼层

    RE:MQX中的void _time_delay_until用法

    _time_delay_until:要看你的滴答时间间隔了。根据这个再算10ms需要多少个滴答时钟。不如直接用_time_delay (10);
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 21:38 , Processed in 0.110761 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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