<?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: Time elapsed in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Time-elapsed/m-p/734196#M29656</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Fabio Benevento,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; You don't need the lib, it's very simple, just use systick to calculate the code execute time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Give you an example from other MCU:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; systick_init();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_systick_read_overhead();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;systick_disable();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; systick_init();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;logic_op_demo_with_normalc();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;systick_disable();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t cnt_start_value;&lt;BR /&gt;uint32_t cnt_end_value;&lt;BR /&gt;uint32_t overhead;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void systick_init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYST_CVR = 0x0;&amp;nbsp;&amp;nbsp; &amp;nbsp;//clear current timer value&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYST_RVR = 0x00FFFFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYST_CSR = SysTick_CSR_CLKSOURCE_MASK | SysTick_CSR_ENABLE_MASK;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void systick_disable(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYST_CSR &amp;amp;= ~SysTick_CSR_ENABLE_MASK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void cal_systick_read_overhead(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t cnt_start_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t cnt_end_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cnt_start_value = SYST_CVR;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt_end_value = SYST_CVR;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;overhead = cnt_start_value - cnt_end_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;#ifdef DEBUG_PRINT&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick start value: 0x%x\n\r", cnt_start_value);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick end value: 0x%x\n\r", cnt_end_value);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick current value read overhead: 0x%x\n\r", overhead);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void logic_op_demo_with_normalc(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t cnt_start_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t cnt_end_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t execution_cycle;&amp;nbsp;&amp;nbsp; &amp;nbsp;//actual execution cycle&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //configure PTA5 as GPIO &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR5 = PORT_PCR_MUX(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //configure PTA5 as output pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOA_PDDR |= 0x20;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt_start_value = SYST_CVR;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOA_PDOR ^= 0x20;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt_end_value = SYST_CVR;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;execution_cycle = cnt_start_value - cnt_end_value - overhead;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;#ifdef DEBUG_PRINT&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick start value: 0x%x\n\r", cnt_start_value);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick end value: 0x%x\n\r", cnt_end_value);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("actual execution cycle for logic operation with normal C code: 0x%x\n\r", execution_cycle);&lt;BR /&gt;#endif&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The above example is used to check the GPIOA_PDOR ^= 0x20; execution time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&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>Fri, 11 May 2018 07:11:52 GMT</pubDate>
    <dc:creator>kerryzhou</dc:creator>
    <dc:date>2018-05-11T07:11:52Z</dc:date>
    <item>
      <title>Time elapsed</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Time-elapsed/m-p/734195#M29655</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="background-color: transparent; border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; box-sizing: border-box; clear: both; color: #242729; font-family: Arial,&amp;amp;quot; helvetica neue&amp;amp;quot;,helvetica,sans-serif; font-size: 15px; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 19.5px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; vertical-align: baseline; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; padding: 0px; margin: 0px 0px 15px 0px; border: 0px none #242729;"&gt;I use an&amp;nbsp; LPC11C24, an I want to calculate with accurancy the time elapsed between instruction in my code.&lt;/P&gt;&lt;P style="background-color: transparent; border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; box-sizing: border-box; clear: both; color: #242729; font-family: Arial,&amp;amp;quot; helvetica neue&amp;amp;quot;,helvetica,sans-serif; font-size: 15px; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 19.5px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; vertical-align: baseline; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; padding: 0px; margin: 0px 0px 15px 0px; border: 0px none #242729;"&gt;I don't need it only for debug but I need this value in my code. I searched but I haven't found libraries that implement this usual problem. How can I do it? Simple with a timer is right? Do you have sample code or better library for LPC11C24 or similar?&lt;/P&gt;&lt;P style="background-color: transparent; border-image-outset: 0; border-image-repeat: stretch; border-image-slice: 100%; border-image-source: none; border-image-width: 1; box-sizing: border-box; clear: both; color: #242729; font-family: Arial,&amp;amp;quot; helvetica neue&amp;amp;quot;,helvetica,sans-serif; font-size: 15px; font-size-adjust: none; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 19.5px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; vertical-align: baseline; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; padding: 0px; margin: 0px 0px 15px 0px; border: 0px none #242729;"&gt;Thank you very much!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 08 May 2018 14:54:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Time-elapsed/m-p/734195#M29655</guid>
      <dc:creator>LArmstrong1985</dc:creator>
      <dc:date>2018-05-08T14:54:07Z</dc:date>
    </item>
    <item>
      <title>Re: Time elapsed</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Time-elapsed/m-p/734196#M29656</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Fabio Benevento,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; You don't need the lib, it's very simple, just use systick to calculate the code execute time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Give you an example from other MCU:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; systick_init();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_systick_read_overhead();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;systick_disable();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; systick_init();&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;logic_op_demo_with_normalc();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;systick_disable();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t cnt_start_value;&lt;BR /&gt;uint32_t cnt_end_value;&lt;BR /&gt;uint32_t overhead;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void systick_init(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SYST_CVR = 0x0;&amp;nbsp;&amp;nbsp; &amp;nbsp;//clear current timer value&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYST_RVR = 0x00FFFFFF;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYST_CSR = SysTick_CSR_CLKSOURCE_MASK | SysTick_CSR_ENABLE_MASK;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void systick_disable(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYST_CSR &amp;amp;= ~SysTick_CSR_ENABLE_MASK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void cal_systick_read_overhead(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t cnt_start_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t cnt_end_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cnt_start_value = SYST_CVR;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt_end_value = SYST_CVR;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;overhead = cnt_start_value - cnt_end_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;#ifdef DEBUG_PRINT&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick start value: 0x%x\n\r", cnt_start_value);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick end value: 0x%x\n\r", cnt_end_value);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick current value read overhead: 0x%x\n\r", overhead);&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void logic_op_demo_with_normalc(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t cnt_start_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t cnt_end_value;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t execution_cycle;&amp;nbsp;&amp;nbsp; &amp;nbsp;//actual execution cycle&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //configure PTA5 as GPIO &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTA_PCR5 = PORT_PCR_MUX(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //configure PTA5 as output pin&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOA_PDDR |= 0x20;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt_start_value = SYST_CVR;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOA_PDOR ^= 0x20;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt_end_value = SYST_CVR;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;execution_cycle = cnt_start_value - cnt_end_value - overhead;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;#ifdef DEBUG_PRINT&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick start value: 0x%x\n\r", cnt_start_value);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("systick end value: 0x%x\n\r", cnt_end_value);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("actual execution cycle for logic operation with normal C code: 0x%x\n\r", execution_cycle);&lt;BR /&gt;#endif&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The above example is used to check the GPIOA_PDOR ^= 0x20; execution time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps you!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Kerry&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>Fri, 11 May 2018 07:11:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Time-elapsed/m-p/734196#M29656</guid>
      <dc:creator>kerryzhou</dc:creator>
      <dc:date>2018-05-11T07:11:52Z</dc:date>
    </item>
  </channel>
</rss>

