<?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>topic Re: Switching between HSRun mode and Run mode messes up the timer period (KSDK, FRDMK22F) in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505785#M5008</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Priya:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you explain what do you mean by "the periodic timer that I created"? How is that periodic timer implemented?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If possible share your project to give it a check from my side.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards!&lt;/P&gt;&lt;P&gt;Jorge Gonzalez&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 25 Jan 2016 20:34:12 GMT</pubDate>
    <dc:creator>Jorge_Gonzalez</dc:creator>
    <dc:date>2016-01-25T20:34:12Z</dc:date>
    <item>
      <title>Switching between HSRun mode and Run mode messes up the timer period (KSDK, FRDMK22F)</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505782#M5005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I followed the sample code provided with power_manager_hal_demo_frdmk22f to switch between HSrunmode and Run mode. I am using CLOCK_SYS_UpdateConfiguration() and POWER_SYS_SetMode() to switch between the two modes which according to documentation should notify the registered drivers. My UART is working fine but the timer is not.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is the procedure I follow in my code:&lt;/P&gt;&lt;P&gt;Start a periodic timer&lt;/P&gt;&lt;P&gt;Whenever the timer expires (it's a loop as the timer is periodic),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process some data and switch between HSrun and Run modes to be able to write to flash&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wait for the timer to expire&lt;/P&gt;&lt;P&gt;end of loop&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I see that if I restart the HW timer using HWTIMER_SYS_Stop and HWTIMER_SYS_Start, the periodic timer never gets fired after the first time and if I don't restart the timer, the timer gets fired but after a very long time as if it's period got changed.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also tried calling HWTIMER_SYS_SetPeriod(&lt;SPAN style="text-decoration: underline;"&gt;&amp;amp;systimer&lt;/SPAN&gt;, BSP_ALARM_PERIOD); in the callback function but it didn't have any effect.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please let me know what is the best way to make the periodic timer work even if the clock changes without restarting it.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Priya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jan 2016 22:49:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505782#M5005</guid>
      <dc:creator>priya_dwivedula</dc:creator>
      <dc:date>2016-01-21T22:49:58Z</dc:date>
    </item>
    <item>
      <title>Re: Switching between HSRun mode and Run mode messes up the timer period (KSDK, FRDMK22F)</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505783#M5006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Priya Dwivedula:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the next thread I shared an example project about changing clock configurations and adapting the &lt;STRONG&gt;HWTIMER &lt;/STRONG&gt;with MQX, please take a look at it. The project is for K64 but the same concept applies for the FRDM-K22F:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/message/571894" rel="nofollow noopener noreferrer" target="_blank"&gt;Re: KDSK CLOCK_SYS_SetConfiguration() no uptade ticks in _time_delay() MQX&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If not using Processor Expert you still can look at the &lt;STRONG&gt;Events.c&lt;/STRONG&gt; file to see the method I used to reconfigure the HWTIMER &lt;STRONG&gt;before&lt;/STRONG&gt; and &lt;STRONG&gt;after&lt;/STRONG&gt; the clock change by using the clock system notification framework. This is the code I used:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_macro_code _jivemacro_uid_14537530019548067 jive_text_macro" data-renderedposition="218.89999389648438_8_1050_416" jivemacro_uid="_14537530019548067"&gt;&lt;P&gt;clock_manager_error_code_t clockMan1_SysTickCallback(clock_notify_struct_t * notify, void * callbackData)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; clock_manager_error_code_t result = kClockManagerSuccess;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch(notify-&amp;gt;notifyType)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kClockManagerNotifyBefore:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWTIMER_SYS_Stop(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kClockManagerNotifyRecover:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case kClockManagerNotifyAfter:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWTIMER_SYS_Init(&amp;amp;systimer, &amp;amp;BSP_SYSTIMER_DEV, BSP_SYSTIMER_ID, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWTIMER_SYS_SetPeriod(&amp;amp;systimer, BSP_ALARM_PERIOD);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWTIMER_SYS_RegisterCallback(&amp;amp;systimer,(hwtimer_callback_t)_time_notify_kernel, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HWTIMER_SYS_Start(&amp;amp;systimer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = kClockManagerError;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you have any doubts.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Best Regards!&lt;BR /&gt;Jorge Gonzalez&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jan 2016 20:16:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505783#M5006</guid>
      <dc:creator>Jorge_Gonzalez</dc:creator>
      <dc:date>2016-01-25T20:16:04Z</dc:date>
    </item>
    <item>
      <title>Re: Switching between HSRun mode and Run mode messes up the timer period (KSDK, FRDMK22F)</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505784#M5007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jorge,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I followed the same example earlier to start and stop the HW timer but once I restart HW timer, the periodic timer that I created stops working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Priya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jan 2016 20:24:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505784#M5007</guid>
      <dc:creator>priya_dwivedula</dc:creator>
      <dc:date>2016-01-25T20:24:17Z</dc:date>
    </item>
    <item>
      <title>Re: Switching between HSRun mode and Run mode messes up the timer period (KSDK, FRDMK22F)</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505785#M5008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Priya:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you explain what do you mean by "the periodic timer that I created"? How is that periodic timer implemented?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If possible share your project to give it a check from my side.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards!&lt;/P&gt;&lt;P&gt;Jorge Gonzalez&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jan 2016 20:34:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505785#M5008</guid>
      <dc:creator>Jorge_Gonzalez</dc:creator>
      <dc:date>2016-01-25T20:34:12Z</dc:date>
    </item>
    <item>
      <title>Re: Switching between HSRun mode and Run mode messes up the timer period (KSDK, FRDMK22F)</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505786#M5009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jorge,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I created a timer using _timer_start_periodic_every().&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a pretty big project.. I don't think I will be able to share it. I will see if I can create a smaller project that I can share with you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Priya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Jan 2016 20:44:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/Switching-between-HSRun-mode-and-Run-mode-messes-up-the-timer/m-p/505786#M5009</guid>
      <dc:creator>priya_dwivedula</dc:creator>
      <dc:date>2016-01-25T20:44:33Z</dc:date>
    </item>
  </channel>
</rss>

