<?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 RTC Seconds, prescalar must be set twice before they set. in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391810#M1166</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am programming a K22 processor and about half the time when I change the RTC seconds and prescalar, they do not change on the first pass. They have always changed by the second pass. Here is my code:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void SetTime(uint32_t milliseconds)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_Type *rtc_base = g_rtcBase[0];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t seconds;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t prescaler;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // disable RTC counter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_HAL_EnableCounter(rtc_base, false);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (RTC_HAL_IsCounterEnabled(rtc_base)) {};&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Datasheet: always write to prescaler register before seconds register.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Change the prescaler(milliseconds)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; prescaler = RTC_PRESCALER_RESET + MillisecondsToTicks(milliseconds % 1000);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_HAL_SetPrescaler(rtc_base, prescaler);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay_ms(50);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Change the seconds register&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; seconds = milliseconds/1000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_HAL_SetSecsReg(rtc_base, seconds);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay_ms(50);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable RTC counter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_HAL_EnableCounter(rtc_base, true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!RTC_HAL_IsCounterEnabled(rtc_base)) {};&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I added the delays and the "while (RTC_HAL_IsCounterEnabled)" statements for troubleshooting when I noticed it wasn't setting. They had little effect upon the outcome. &lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Why does it take two passes to effectively set the RTC?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, when I run the same code on a KL26 processor, the seconds/prescalar don't get set at all. Any ideas on this one?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Jul 2015 22:08:15 GMT</pubDate>
    <dc:creator>mikelitster</dc:creator>
    <dc:date>2015-07-28T22:08:15Z</dc:date>
    <item>
      <title>RTC Seconds, prescalar must be set twice before they set.</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391810#M1166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am programming a K22 processor and about half the time when I change the RTC seconds and prescalar, they do not change on the first pass. They have always changed by the second pass. Here is my code:&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void SetTime(uint32_t milliseconds)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_Type *rtc_base = g_rtcBase[0];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t seconds;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t prescaler;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // disable RTC counter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_HAL_EnableCounter(rtc_base, false);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (RTC_HAL_IsCounterEnabled(rtc_base)) {};&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Datasheet: always write to prescaler register before seconds register.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Change the prescaler(milliseconds)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; prescaler = RTC_PRESCALER_RESET + MillisecondsToTicks(milliseconds % 1000);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_HAL_SetPrescaler(rtc_base, prescaler);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay_ms(50);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Change the seconds register&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; seconds = milliseconds/1000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_HAL_SetSecsReg(rtc_base, seconds);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay_ms(50);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable RTC counter&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_HAL_EnableCounter(rtc_base, true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!RTC_HAL_IsCounterEnabled(rtc_base)) {};&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I added the delays and the "while (RTC_HAL_IsCounterEnabled)" statements for troubleshooting when I noticed it wasn't setting. They had little effect upon the outcome. &lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Why does it take two passes to effectively set the RTC?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also, when I run the same code on a KL26 processor, the seconds/prescalar don't get set at all. Any ideas on this one?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Jul 2015 22:08:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391810#M1166</guid>
      <dc:creator>mikelitster</dc:creator>
      <dc:date>2015-07-28T22:08:15Z</dc:date>
    </item>
    <item>
      <title>Re: RTC Seconds, prescalar must be set twice before they set.</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391811#M1167</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please tell me which K22 MCU you are using? (K22_50MHz, 100MHz, etc)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2015 13:29:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391811#M1167</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2015-07-31T13:29:53Z</dc:date>
    </item>
    <item>
      <title>Re: RTC Seconds, prescalar must be set twice before they set.</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391812#M1168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's the &lt;SPAN style="color: #000000; font-family: arial, sans, sans-serif; font-size: 13px;"&gt;MK22FN512VLH12. I am running at 120MHz.&amp;nbsp; Also the &lt;SPAN style="color: #000000; font-family: arial, sans, sans-serif; font-size: 13px;"&gt;MKL26Z64VFM4 at 96MHz.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2015 14:22:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391812#M1168</guid>
      <dc:creator>mikelitster</dc:creator>
      <dc:date>2015-07-31T14:22:08Z</dc:date>
    </item>
    <item>
      <title>Re: RTC Seconds, prescalar must be set twice before they set.</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391813#M1169</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How do you realize that changes aren't made? (debugging, printing...)&lt;/P&gt;&lt;P&gt;I ran RTC example located in &amp;lt;KSDK_1_2_0_PATH&amp;gt;\examples\twrk22f120m\driver_examples\rtc\kds and in function RTC_DRV_SetDatetime() it updates TSR and TPR values in the first attempt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please attach your code to see what is happening?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2015 21:44:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391813#M1169</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2015-07-31T21:44:41Z</dc:date>
    </item>
    <item>
      <title>Re: RTC Seconds, prescalar must be set twice before they set.</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391814#M1170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you still have this problem?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Isaac&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Aug 2015 14:27:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391814#M1170</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2015-08-10T14:27:35Z</dc:date>
    </item>
    <item>
      <title>Re: RTC Seconds, prescalar must be set twice before they set.</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391815#M1171</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Apparently I was not allowing changes to take place before checking them. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Aug 2015 20:36:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/RTC-Seconds-prescalar-must-be-set-twice-before-they-set/m-p/391815#M1171</guid>
      <dc:creator>mikelitster</dc:creator>
      <dc:date>2015-08-20T20:36:25Z</dc:date>
    </item>
  </channel>
</rss>

