<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>MQX Software SolutionsのトピックRe: try to use _time_delay_until()</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182656#M2920</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;found a bug:&lt;/P&gt;&lt;P&gt;pcTickCounter=_mem_alloc(&lt;STRONG&gt;&lt;FONT color="#7F0055" size="2"&gt;&lt;FONT color="#7F0055" size="2"&gt;sizeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;(&lt;/FONT&gt;&lt;FONT color="#005032" size="2"&gt;&lt;FONT color="#005032" size="2"&gt;MQX_TICK_STRUCT_PTR&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;should be:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;pcTickCounter=_mem_alloc(&lt;STRONG&gt;&lt;FONT color="#7F0055" size="2"&gt;&lt;FONT color="#7F0055" size="2"&gt;sizeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;(&lt;/FONT&gt;&lt;FONT color="#005032" size="2"&gt;&lt;FONT color="#005032" size="2"&gt;MQX_TICK_STRUCT&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;But still I recommend to use timer function with events.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;At one day you will add higher priority task(s) or interrupt load increases,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;resulting that the next 2 ms tick may be passed.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;The event method works also in these cases: when entering into event wait&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;and if the event is already set the function returns immediatelly.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;~Mark&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Nov 2011 02:29:27 GMT</pubDate>
    <dc:creator>MarkP_</dc:creator>
    <dc:date>2011-11-15T02:29:27Z</dc:date>
    <item>
      <title>try to use _time_delay_until()</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182653#M2917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I found many examples that use the _time_delay() function but no one that uses the _time_delay_until function.&lt;/P&gt;&lt;P&gt;I have a task that should be executed every 2 ms. I don t want to use the _time_delay() function cause later I ve some more code between my Gpio_toggle and my _time_delay_until instructions which length of time is between 0.5 and 1.5 ms.&lt;/P&gt;&lt;P&gt;So I wrote the following code. If I exchange&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;FONT size="2"&gt;&lt;STRONG&gt;&lt;FONT color="#642880"&gt;_time_delay_until&lt;/FONT&gt;&lt;/STRONG&gt;(pcTickCounter);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;with &lt;FONT size="2"&gt;&lt;STRONG&gt;&lt;FONT color="#642880"&gt;_time_delay&lt;/FONT&gt;&lt;/STRONG&gt;(2);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;my GPIO toggles every 2 ms, but with the &lt;STRONG&gt;&lt;FONT color="#642880" size="2"&gt;_time_delay_until instruction, the code waits and waits and waits until I stop execution.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;STRONG&gt;&lt;FONT color="#642880" size="2"&gt;Do you know what I made wrong?&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;void &lt;FONT color="#000000" size="2"&gt;&lt;STRONG&gt;fast_com&lt;/STRONG&gt; (&lt;/FONT&gt;&lt;FONT color="#005032" size="2"&gt;&lt;FONT color="#005032" size="2"&gt;uint_32&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT color="#000000"&gt;initial_data)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;{&lt;/P&gt;&lt;P&gt;&lt;FONT color="#005032" size="2"&gt;&lt;FONT color="#005032" size="2"&gt;MQX_TICK_STRUCT_PTR&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT size="2"&gt;&lt;FONT size="2"&gt;pcTickCounter;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;pcTickCounter=_mem_alloc(&lt;STRONG&gt;&lt;FONT color="#7F0055" size="2"&gt;&lt;FONT color="#7F0055" size="2"&gt;sizeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;(&lt;/FONT&gt;&lt;FONT color="#005032" size="2"&gt;&lt;FONT color="#005032" size="2"&gt;MQX_TICK_STRUCT_PTR&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#642880" size="2"&gt;&lt;FONT color="#642880" size="2"&gt;_time_get_ticks&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(pcTickCounter);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&lt;STRONG&gt;&lt;FONT color="#7F0055" size="2"&gt;&lt;FONT color="#7F0055" size="2"&gt;while&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(1){&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&lt;FONT color="#642880" size="2"&gt;&lt;FONT color="#642880" size="2"&gt;_time_add_msec_to_ticks&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(pcTickCounter,2);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Gpio_toggle(&lt;EM&gt;&lt;FONT color="#0000C0" size="2"&gt;&lt;FONT color="#0000C0" size="2"&gt;PORTE&lt;/FONT&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;, GPIO_PIN_ACCESS(28));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT color="#642880" size="2"&gt;&lt;FONT color="#642880" size="2"&gt;&amp;nbsp;&amp;nbsp; _time_delay_until&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;(pcTickCounter);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P align="left"&gt;&amp;nbsp; }&lt;/P&gt;&lt;P align="left"&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Nov 2011 17:46:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182653#M2917</guid>
      <dc:creator>UB39</dc:creator>
      <dc:date>2011-11-14T17:46:04Z</dc:date>
    </item>
    <item>
      <title>Re: try to use _time_delay_until()</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182654#M2918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;BR /&gt;Probably the time has passed by the delay generated by some higher priority task(s).&lt;BR /&gt;I have used the timer function to get 1 ms events.&lt;BR /&gt;1)Change tick from 10 ms to 1 ms by defining in user_config.h:&lt;BR /&gt;&amp;nbsp; #define BSP_ALARM_FREQUENCY (1000)&lt;BR /&gt;&lt;BR /&gt;2)Timer event code principle:&lt;BR /&gt;void timerCallback(void *arg);&lt;BR /&gt;&lt;BR /&gt;LWEVENT_STRUCT lwEvent;&lt;BR /&gt;#define MY_EVENT_01 0x01&lt;BR /&gt;&lt;BR /&gt;void TimerTest(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; LWTIMER_PERIOD_STRUCT timerPeriodQueue;&lt;BR /&gt;&amp;nbsp; LWTIMER_STRUCT timer;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; _lwevent_create(&amp;amp;lwEvent, LWEVENT_AUTO_CLEAR);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; /* Create one ms timer &amp;amp; queue */&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; _lwtimer_create_periodic_queue(&amp;amp;timerPeriodQueue, 1, 0);&lt;BR /&gt;&amp;nbsp; _lwtimer_add_timer_to_queue(&amp;amp;timerPeriodQueue, &amp;amp;timer, 0, timerCallback, NULL);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; while(1)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwevent_wait_for(&amp;amp;lwEvent, MY_EVENT_01, TRUE, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Handle the jobs */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void timerCallback(void *arg)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; _lwevent_set(&amp;amp;lwEvent, MY_EVENT_01);&lt;BR /&gt;}&lt;BR /&gt;~Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Nov 2011 22:39:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182654#M2918</guid>
      <dc:creator>MarkP_</dc:creator>
      <dc:date>2011-11-14T22:39:09Z</dc:date>
    </item>
    <item>
      <title>Re: try to use _time_delay_until()</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182655#M2919</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Maybe I should try to use Timer events. But I thought my application should be possible to implement &amp;nbsp;with the _time_delay_until function.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My tick time is 1 ms. So this is not the reason for my problems.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And I have no higher priority tasks at the moment. So this is also not the reason.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And as I said: I have no problems if I use _time_delay_ticks instead of _time_delay_until&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I only find examples for time_delay or time_delay_ticks. The same when I search here in&amp;nbsp;Forum. I wonder why time_delay_ticks seems to be&amp;nbsp; a little bit exotic cause in my opinion time_delay_until should be more popular than time_delay or _time_delay_ticks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Ulf&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Nov 2011 23:25:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182655#M2919</guid>
      <dc:creator>UB39</dc:creator>
      <dc:date>2011-11-14T23:25:18Z</dc:date>
    </item>
    <item>
      <title>Re: try to use _time_delay_until()</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182656#M2920</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;found a bug:&lt;/P&gt;&lt;P&gt;pcTickCounter=_mem_alloc(&lt;STRONG&gt;&lt;FONT color="#7F0055" size="2"&gt;&lt;FONT color="#7F0055" size="2"&gt;sizeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;(&lt;/FONT&gt;&lt;FONT color="#005032" size="2"&gt;&lt;FONT color="#005032" size="2"&gt;MQX_TICK_STRUCT_PTR&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;should be:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;pcTickCounter=_mem_alloc(&lt;STRONG&gt;&lt;FONT color="#7F0055" size="2"&gt;&lt;FONT color="#7F0055" size="2"&gt;sizeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="2"&gt;(&lt;/FONT&gt;&lt;FONT color="#005032" size="2"&gt;&lt;FONT color="#005032" size="2"&gt;MQX_TICK_STRUCT&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;But still I recommend to use timer function with events.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;At one day you will add higher priority task(s) or interrupt load increases,&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;resulting that the next 2 ms tick may be passed.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;The event method works also in these cases: when entering into event wait&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;and if the event is already set the function returns immediatelly.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;~Mark&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;FONT size="2"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Nov 2011 02:29:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182656#M2920</guid>
      <dc:creator>MarkP_</dc:creator>
      <dc:date>2011-11-15T02:29:27Z</dc:date>
    </item>
    <item>
      <title>Re: try to use _time_delay_until()</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182657#M2921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For what it's worth, I have tried using the periodic timer &amp;nbsp;&amp;nbsp; _timer_start_periodic_every(), and am having issues with it.&amp;nbsp; It continues to generate the periodic call back, which in turn is setting an event, but, it appears that after some randomish time frame, the MQX timer task starts running nonstop, never allowing the task that is supposed to be awakened by the event to run again.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 May 2012 21:52:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/try-to-use-time-delay-until/m-p/182657#M2921</guid>
      <dc:creator>RichardR</dc:creator>
      <dc:date>2012-05-08T21:52:12Z</dc:date>
    </item>
  </channel>
</rss>

