<?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>LPCXpresso IDEのトピックTimer Library Bug</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526775#M110</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ElectroNerd on Sun Feb 03 12:08:32 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Does the "timer" library in "Examples\NXP\LPC1000\LPC17xx\NXP_LPCXpresso1769_MCB1700_2011-02-11.zip" have a bug for the interval calculation?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[B]My Calculations[/B]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In system_LPC17xx.c, it gives the following defines:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
[B]#define PLL0CFG_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 00 000B[/B]
#define PLL1_SETUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1
#define PLL1CFG_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000023
[B]#define CCLKCFG_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000003[/B]
#define USBCLKCFG_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000
#define PCLKSEL0_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000
[B]#define PCLKSEL1_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000[/B]

[B]#define XTAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (12000000UL)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Oscillator frequency&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */[/B]
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Which means:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;N = 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;M = 12&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Fin = 12 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Clock Divide = 4&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Fcco = (2 x M x Fin)/N = (2 x 12 x 12e6)/1 = 288 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CCLK (CPU clock) = 288/4 = 72 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PCLK (Peripheral Clock) = CCLK/4 = 18 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[B]timer.c[/B]&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
// This function delays in milli-seconds (ms)

void delayMs(uint8_t timer_num, uint32_t delayInMs)
{
&amp;nbsp; if ( timer_num == 0 )
&amp;nbsp; {
LPC_TIM0-&amp;gt;TCR = 0x02;/* reset timer */
LPC_TIM0-&amp;gt;PR&amp;nbsp; = 0x00;/* set prescaler to zero */
LPC_TIM0-&amp;gt;MR0 = delayInMs * (9000000 / 1000-1);
LPC_TIM0-&amp;gt;IR&amp;nbsp; = 0xff;/* reset all interrrupts */
LPC_TIM0-&amp;gt;MCR = 0x04;/* stop timer on match */
LPC_TIM0-&amp;gt;TCR = 0x01;/* start timer */
&amp;nbsp; 
/* wait until delay time has elapsed */
while (LPC_TIM0-&amp;gt;TCR &amp;amp; 0x01);
&amp;nbsp; }
&amp;nbsp; else if ( timer_num == 1 )
&amp;nbsp; {
LPC_TIM1-&amp;gt;TCR = 0x02;/* reset timer */
LPC_TIM1-&amp;gt;PR&amp;nbsp; = 0x00;/* set prescaler to zero */
LPC_TIM1-&amp;gt;MR0 = delayInMs * ([B]9000000[/B] / 1000-1);
LPC_TIM1-&amp;gt;IR&amp;nbsp; = 0xff;/* reset all interrrupts */
LPC_TIM1-&amp;gt;MCR = 0x04;/* stop timer on match */
LPC_TIM1-&amp;gt;TCR = 0x01;/* start timer */
&amp;nbsp; 
/* wait until delay time has elapsed */
while (LPC_TIM1-&amp;gt;TCR &amp;amp; 0x01);
&amp;nbsp; }
&amp;nbsp; return;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can someone explain why the code implies a 9 MHz PCLK instead of 18 MHz? Shouldn't it be corrected to:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;LPC_TIM1-&amp;gt;MR0 = delayInMs * ([B]18000000[/B] / 1000-1);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I have seen "SystemCoreClock" being used as a reference for calculating delay intervals - is this equivalent to CCLK (in this instance, 72 MHz)?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 21:40:09 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T21:40:09Z</dc:date>
    <item>
      <title>Timer Library Bug</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526775#M110</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ElectroNerd on Sun Feb 03 12:08:32 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Does the "timer" library in "Examples\NXP\LPC1000\LPC17xx\NXP_LPCXpresso1769_MCB1700_2011-02-11.zip" have a bug for the interval calculation?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[B]My Calculations[/B]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In system_LPC17xx.c, it gives the following defines:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
[B]#define PLL0CFG_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00 00 000B[/B]
#define PLL1_SETUP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1
#define PLL1CFG_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000023
[B]#define CCLKCFG_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000003[/B]
#define USBCLKCFG_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000
#define PCLKSEL0_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000
[B]#define PCLKSEL1_Val&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000[/B]

[B]#define XTAL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (12000000UL)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Oscillator frequency&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */[/B]
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Which means:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;N = 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;M = 12&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Fin = 12 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Clock Divide = 4&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Fcco = (2 x M x Fin)/N = (2 x 12 x 12e6)/1 = 288 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CCLK (CPU clock) = 288/4 = 72 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PCLK (Peripheral Clock) = CCLK/4 = 18 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[B]timer.c[/B]&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
// This function delays in milli-seconds (ms)

void delayMs(uint8_t timer_num, uint32_t delayInMs)
{
&amp;nbsp; if ( timer_num == 0 )
&amp;nbsp; {
LPC_TIM0-&amp;gt;TCR = 0x02;/* reset timer */
LPC_TIM0-&amp;gt;PR&amp;nbsp; = 0x00;/* set prescaler to zero */
LPC_TIM0-&amp;gt;MR0 = delayInMs * (9000000 / 1000-1);
LPC_TIM0-&amp;gt;IR&amp;nbsp; = 0xff;/* reset all interrrupts */
LPC_TIM0-&amp;gt;MCR = 0x04;/* stop timer on match */
LPC_TIM0-&amp;gt;TCR = 0x01;/* start timer */
&amp;nbsp; 
/* wait until delay time has elapsed */
while (LPC_TIM0-&amp;gt;TCR &amp;amp; 0x01);
&amp;nbsp; }
&amp;nbsp; else if ( timer_num == 1 )
&amp;nbsp; {
LPC_TIM1-&amp;gt;TCR = 0x02;/* reset timer */
LPC_TIM1-&amp;gt;PR&amp;nbsp; = 0x00;/* set prescaler to zero */
LPC_TIM1-&amp;gt;MR0 = delayInMs * ([B]9000000[/B] / 1000-1);
LPC_TIM1-&amp;gt;IR&amp;nbsp; = 0xff;/* reset all interrrupts */
LPC_TIM1-&amp;gt;MCR = 0x04;/* stop timer on match */
LPC_TIM1-&amp;gt;TCR = 0x01;/* start timer */
&amp;nbsp; 
/* wait until delay time has elapsed */
while (LPC_TIM1-&amp;gt;TCR &amp;amp; 0x01);
&amp;nbsp; }
&amp;nbsp; return;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can someone explain why the code implies a 9 MHz PCLK instead of 18 MHz? Shouldn't it be corrected to:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;LPC_TIM1-&amp;gt;MR0 = delayInMs * ([B]18000000[/B] / 1000-1);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, I have seen "SystemCoreClock" being used as a reference for calculating delay intervals - is this equivalent to CCLK (in this instance, 72 MHz)?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:40:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526775#M110</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:40:09Z</dc:date>
    </item>
    <item>
      <title>Re: Timer Library Bug</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526776#M111</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Rob65 on Sun Feb 03 14:26:38 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: ElectroNerd&lt;/STRONG&gt;&lt;BR /&gt;Does the "timer" library in "Examples\&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You are not the first to note a bug - and yes, I too think this is a bug (although I have not tested this).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also note the difference between library and example ...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;There is no timer library, just a timer example and that does not even use the delayMs function. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I think that, at some point in time, there was an example setting PCLK to CCLK/8 and then it all fits.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The 'fun' thing is that in that same timer.c file, the init_timer function does take into account that PCLK can be either CCLK/1, /2, /4 or /8 ... &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes - it's just too bad that these examples (the timer is not the only one) contains bugs making us wonder if we have a problem interpreting the user manual or if there is a bug in the code...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;By the way: it's easier to use the systick timer for this kind of delays.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rob&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;P.s: you'll find other files named timer.c in the other projects containing a somewhat, yet not completely, similar implementation :confused:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:40:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526776#M111</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:40:10Z</dc:date>
    </item>
    <item>
      <title>Re: Timer Library Bug</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526777#M112</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ElectroNerd on Sun Feb 03 18:55:12 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Rob65&lt;/STRONG&gt;&lt;BR /&gt;You are not the first to note a bug - and yes, I too think this is a bug (although I have not tested this).&lt;BR /&gt;&lt;BR /&gt;Also note the difference between library and example ...&lt;BR /&gt;There is no timer library, just a timer example and that does not even use the delayMs function. &lt;BR /&gt;I think that, at some point in time, there was an example setting PCLK to CCLK/8 and then it all fits.&lt;BR /&gt;&lt;BR /&gt;The 'fun' thing is that in that same timer.c file, the init_timer function does take into account that PCLK can be either CCLK/1, /2, /4 or /8 ... &lt;BR /&gt;&lt;BR /&gt;Yes - it's just too bad that these examples (the timer is not the only one) contains bugs making us wonder if we have a problem interpreting the user manual or if there is a bug in the code...&lt;BR /&gt;&lt;BR /&gt;By the way: it's easier to use the systick timer for this kind of delays.&lt;BR /&gt;&lt;BR /&gt;Rob&lt;BR /&gt;&lt;BR /&gt;P.s: you'll find other files named timer.c in the other projects containing a somewhat, yet not completely, similar implementation :confused:&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It seems as if there is no bug after all. I went ahead and configured TIMER0 for a theoretical 1 ms period and my o'scope showed a 2 ms period! Attached you will find the code that correctly gives 1 ms.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Where does this come in for the calculations?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rob, I am in the process of creating a timer library for my application, but I may consider using SysTick as a feature.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:40:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526777#M112</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:40:10Z</dc:date>
    </item>
    <item>
      <title>Re: Timer Library Bug</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526778#M113</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ElectroNerd on Sun Feb 03 22:19:32 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I understand why the [I]period[/I] was 2 ms instead of 1 ms. In my main() loop, there is the following code (embellished slightly for explanatory purposes):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
// HIGH for 1 ms
led_on(LED_1);
delay_ms(0, DELAY);

// LOW for 1 ms
led_off(LED_1);
delay_ms(0, DELAY);

// Period = HIGH + LOW = 1 ms + 1 ms = 2 ms
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Conditions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[LIST]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[*]CCLK = 120 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[*]PCLK = 30 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/LIST]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since we are speaking of a period in terms of a square wave, it would be two times that of the interval calculation.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This would explain the delayMs() function, since they were toggling LEDs and wanted the period properly defined.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:40:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Library-Bug/m-p/526778#M113</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:40:11Z</dc:date>
    </item>
  </channel>
</rss>

