<?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: PIT interrupt Problem on RT1050 in MCUXpresso IDE</title>
    <link>https://community.nxp.com/t5/MCUXpresso-IDE/PIT-interrupt-Problem-on-RT1050/m-p/748624#M1648</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Shen,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As the demo as-is provides a properly 1-second delay, it should be an issue with the adaption to the delay_us function. You could try checking the following:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Ensure that clock sources/destination are properly configured for PIT clock base.&lt;/LI&gt;&lt;LI&gt;Verify the bits domain when applying division/multiplication factors to counters like the below code lines, as a non-fractional result may provide enough deviation/error on the counts and getting the observer behavior:&lt;/LI&gt;&lt;/UL&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT_clock_peroid=PIT_SOURCE_CLOCK/1000000U;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT_SetTimerPeriod(PIT, kPIT_Chnl_0, 1000000U*PIT_clock_peroid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT_SetTimerPeriod(PIT, kPIT_Chnl_1, 1000U*PIT_clock_peroid);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;Hope this will be useful for you.&lt;BR /&gt;Best regards!&lt;BR /&gt;/Carlos&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>Thu, 05 Apr 2018 17:26:32 GMT</pubDate>
    <dc:creator>CarlosCasillas</dc:creator>
    <dc:date>2018-04-05T17:26:32Z</dc:date>
    <item>
      <title>PIT interrupt Problem on RT1050</title>
      <link>https://community.nxp.com/t5/MCUXpresso-IDE/PIT-interrupt-Problem-on-RT1050/m-p/748622#M1646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Sir,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Recently, I start to use RT1050 EVK, based on SDK PIT driver example I plan to make a time delay function(with PIT). I found there is a problem on the delay function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. if I want to delay 1us, I will get the nearly 2 us delay, that is OK because there is interrupt head.&lt;/P&gt;&lt;P&gt;2. if I want to delay 480us, I will get the around 160us delay (check with scope).&lt;/P&gt;&lt;P&gt;3. when I set the delay as 5000us, I got 1800us delay.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The attached is the project source file(MCUXpresso project). Please advise me what is the problem to use PIT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2018 12:07:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-IDE/PIT-interrupt-Problem-on-RT1050/m-p/748622#M1646</guid>
      <dc:creator>zhongshen</dc:creator>
      <dc:date>2018-03-29T12:07:38Z</dc:date>
    </item>
    <item>
      <title>Re: PIT interrupt Problem</title>
      <link>https://community.nxp.com/t5/MCUXpresso-IDE/PIT-interrupt-Problem-on-RT1050/m-p/748623#M1647</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Based on PIT driver example, I set the PIT channel0's period as 1000000us (one second, toggle led on/off), and channel2's period as 1us, 2us,...step with 1us (toggle GPIO: GPIO_AD_B0_01). According to the example that the PIT source clock is&amp;nbsp;kCLOCK_OscClk=24Mhz. I found that led on/off is like 1 second, but GPIO toggle is like 1/3us step (on scope). So I set the period based on 72Mhz, the channel2 look like step on 1us(but in within 10us, the period is random.). Is PIT clock 72MHz?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using similar code on KF64, the PIT period is correct, which interrupt overhead period is fixed round 3us. Does PIT have a bug on RT1050?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here is the code:&lt;/P&gt;&lt;P&gt;j=1;&lt;BR /&gt; while (true)&lt;BR /&gt; {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Check whether occur interupt and toggle LED */&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;if (true == pitIsrFlag)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PRINTF("\r\n Channel No.%d interrupt is occured !",j);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LED_TOGGLE();&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pitIsrFlag = false;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// check channel 2 for delay&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GPIO_PinWrite(OW_GPIO_PORT, OW_GPIO_PIN, 0U);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;US_delay(j);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GPIO_PinWrite(OW_GPIO_PORT, OW_GPIO_PIN, 1U);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j++;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void US_delay(uint32_t us){&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;PIT_SetTimerPeriod(PIT, kPIT_Chnl_2, us*3*PIT_clock_peroid); // assume source is 72Mhz&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;PIT_StartTimer(PIT, kPIT_Chnl_2);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;while(PIT-&amp;gt;CHANNEL[kPIT_Chnl_2].TCTRL &amp;amp; PIT_TCTRL_TEN_MASK);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void PIT_LED_HANDLER(void)&lt;BR /&gt;{&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;pit_chnl_t i;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;/* Clear interrupt flag.*/&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;for(i=kPIT_Chnl_0;i&amp;lt;4;i++){&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(PIT_GetStatusFlags(PIT, i)){&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PIT_ClearStatusFlags(PIT, i, kPIT_TimerFlag);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch(i){&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case kPIT_Chnl_0:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pitIsrFlag = true;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case kPIT_Chnl_1:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case kPIT_Chnl_2:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PIT_StopTimer(PIT, kPIT_Chnl_2);&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case kPIT_Chnl_3:&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Apr 2018 14:07:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-IDE/PIT-interrupt-Problem-on-RT1050/m-p/748623#M1647</guid>
      <dc:creator>zhongshen</dc:creator>
      <dc:date>2018-04-04T14:07:32Z</dc:date>
    </item>
    <item>
      <title>Re: PIT interrupt Problem on RT1050</title>
      <link>https://community.nxp.com/t5/MCUXpresso-IDE/PIT-interrupt-Problem-on-RT1050/m-p/748624#M1648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Shen,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As the demo as-is provides a properly 1-second delay, it should be an issue with the adaption to the delay_us function. You could try checking the following:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Ensure that clock sources/destination are properly configured for PIT clock base.&lt;/LI&gt;&lt;LI&gt;Verify the bits domain when applying division/multiplication factors to counters like the below code lines, as a non-fractional result may provide enough deviation/error on the counts and getting the observer behavior:&lt;/LI&gt;&lt;/UL&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT_clock_peroid=PIT_SOURCE_CLOCK/1000000U;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT_SetTimerPeriod(PIT, kPIT_Chnl_0, 1000000U*PIT_clock_peroid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT_SetTimerPeriod(PIT, kPIT_Chnl_1, 1000U*PIT_clock_peroid);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;Hope this will be useful for you.&lt;BR /&gt;Best regards!&lt;BR /&gt;/Carlos&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>Thu, 05 Apr 2018 17:26:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-IDE/PIT-interrupt-Problem-on-RT1050/m-p/748624#M1648</guid>
      <dc:creator>CarlosCasillas</dc:creator>
      <dc:date>2018-04-05T17:26:32Z</dc:date>
    </item>
  </channel>
</rss>

