<?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>LPC MicrocontrollersのトピックRe: example of LPC1837 capture timer?</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577432#M19620</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;Isaac,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;I have used example above to test the capture timer on lpcxpresso 4337 board. I have changed line 69 from TIMER_CAPSRC_RISING_PCLK to TIMER_CAPSRC_RISING_CAPN. However the value of "&lt;SPAN&gt;captureValue&lt;/SPAN&gt;" always equals to zero, while I printed the value of "times", it changed really fast which of course exceed the frequency of my input signal. So strange about that. Any ideas about that?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 31 May 2017 08:55:17 GMT</pubDate>
    <dc:creator>yuanbinzhou</dc:creator>
    <dc:date>2017-05-31T08:55:17Z</dc:date>
    <item>
      <title>example of LPC1837 capture timer?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577429#M19617</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by smalouin on Mon Oct 27 06:37:05 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am trying to use the LPC1837 capture timer on port 5.0 (timer1 capture 0)... not having much luck (ie, I never get the IRQhandler for timer 1 called.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Anybody has an example that works?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is what I have, but it's all from scratch, I'm pretty sure an example would set me on the right track.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;"&gt; &lt;PRE&gt;
void rc5InterruptInit(void){
&amp;nbsp; /* Enable timer 1 clock and reset it */
&amp;nbsp;&amp;nbsp; #define IR_TIMER&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; LPC_TIMER1
&amp;nbsp;&amp;nbsp; #define IR_TIMER_IRQHANDLER&amp;nbsp;&amp;nbsp; TIMER1_IRQHandler
&amp;nbsp;&amp;nbsp; #define IR_TIMER_IRQn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIMER1_IRQn

Chip_TIMER_Init(IR_TIMER);
Chip_RGU_TriggerReset(RGU_TIMER1_RST);
while (Chip_RGU_InReset(RGU_TIMER1_RST)) {}

/* Get timer 1 peripheral clock rate */
gRc5.timerFreq = Chip_Clock_GetRate(CLK_MX_TIMER1);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Timer setup for match and interrupt at TICKRATE_HZ */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_Reset(IR_TIMER);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Chip_SCU_PinMuxSet(5, 0, (SCU_MODE_INBUFF_EN | SCU_MODE_FUNC5));/* P5.0 pin as T1_CAP0 */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SCU_PinMuxSet(5, 0, (SCU_MODE_FUNC5));/* P5.0 pin as T1_CAP0 */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GIMA-&amp;gt;CAP0_IN[1][0]=00000021;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_TIMER_SetCountClockSrc(IR_TIMER,TIMER_CAPSRC_RISING_PCLK ,0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_ClearCapture(IR_TIMER,0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Chip_TIMER_PrescaleSet(IR_TIMER,(gRc5.timerFreq /(RC5_FREQ)));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_PrescaleSet(IR_TIMER,0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_CaptureEnableInt(IR_TIMER,0);/* start the capture timer */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_CaptureFallingEdgeEnable(IR_TIMER,0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_CaptureRisingEdgeEnable(IR_TIMER,0);


Chip_TIMER_Enable(IR_TIMER);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
/* Enable timer interrupt */
NVIC_EnableIRQ(IR_TIMER_IRQn);
NVIC_ClearPendingIRQ(IR_TIMER_IRQn);
}

void TIMER1_IRQHandler (void){
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; /* using the capture compare */
&amp;nbsp;&amp;nbsp; if (Chip_TIMER_CapturePending(IR_TIMER, 0)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc5TimerCaptureIrq();
&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 20:17:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577429#M19617</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T20:17:09Z</dc:date>
    </item>
    <item>
      <title>Re: example of LPC1837 capture timer?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577430#M19618</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I got exactly the same issue.&lt;/P&gt;&lt;P&gt;Did you eventually get it to work?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jul 2016 12:48:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577430#M19618</guid>
      <dc:creator>olivierswinkels</dc:creator>
      <dc:date>2016-07-07T12:48:45Z</dc:date>
    </item>
    <item>
      <title>Re: example of LPC1837 capture timer?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577431#M19619</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is an example on LPCXpresso 4337 that uses P1_13 as the capture input for timer 0, you can use it as reference!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="_jivemacro_uid_14703464286452628 jive_macro_code jive_text_macro" data-hasrefreshed="true" data-renderedposition="111.80000305175781_8_1192_1136" jivemacro_uid="_14703464286452628" modifiedtitle="true"&gt;&lt;P&gt;#include "board.h"&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*****************************************************************************&lt;/P&gt;&lt;P&gt; * Private types/enumerations/variables&lt;/P&gt;&lt;P&gt; ****************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define TIMER_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;#define CAP_NUMB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define LPC_TIMER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIMER0&lt;/P&gt;&lt;P&gt;#define RGU_TIMER_RST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RGU_TIMER0_RST&lt;/P&gt;&lt;P&gt;#define LPC_TIMER_IRQ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIMER0_IRQn&lt;/P&gt;&lt;P&gt;#define LPC_TIMER_IRQH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TIMER0_IRQHandler&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*****************************************************************************&lt;/P&gt;&lt;P&gt; * Public types/enumerations/variables&lt;/P&gt;&lt;P&gt; ****************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*****************************************************************************&lt;/P&gt;&lt;P&gt; * Private functions&lt;/P&gt;&lt;P&gt; ****************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*****************************************************************************&lt;/P&gt;&lt;P&gt; * Public functions&lt;/P&gt;&lt;P&gt; ****************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**&lt;/P&gt;&lt;P&gt; * @brief&amp;nbsp;&amp;nbsp;&amp;nbsp; Handle interrupt from 32-bit timer&lt;/P&gt;&lt;P&gt; * @return&amp;nbsp;&amp;nbsp;&amp;nbsp; Nothing&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void LPC_TIMER_IRQH (void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static uint32_t times = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile static uint32_t captureValue = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Count how many times the interrupt has being trigger */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; times++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Get capture value on CAP0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; captureValue = Chip_TIMER_ReadCapture(LPC_TIMER, CAP_NUMB);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUGOUT(" %d\r\n", captureValue);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**&lt;/P&gt;&lt;P&gt; * @brief&amp;nbsp;&amp;nbsp;&amp;nbsp; main routine for blinky example&lt;/P&gt;&lt;P&gt; * @return&amp;nbsp;&amp;nbsp;&amp;nbsp; Function should not exit.&lt;/P&gt;&lt;P&gt; */&lt;/P&gt;&lt;P&gt;int main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemCoreClockUpdate();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Board_Init();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P1_13 as T0_CAP0, disable internal filter and enable input buffer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_SCU_PinMuxSet(1, 13, (SCU_MODE_INBUFF_EN | SCU_MODE_ZIF_DIS | SCU_MODE_FUNC4));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Timer 0 CAP0 EDGE enabled and SELECT as 0x2 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GIMA-&amp;gt;CAP0_IN[TIMER_NUMBER][CAP_NUMB] = (2 &amp;lt;&amp;lt; 4) | (1 &amp;lt;&amp;lt; 1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Timer0 init */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_Init(LPC_TIMER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reset timer0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_RGU_TriggerReset(RGU_TIMER_RST);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (Chip_RGU_InReset(RGU_TIMER_RST));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_Reset(LPC_TIMER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Select PCLK as timer source */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_TIMER_SetCountClockSrc(LPC_TIMER, TIMER_CAPSRC_RISING_PCLK, CAP_NUMB);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Select prescaler value */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_PrescaleSet(LPC_TIMER, 10);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear capture value on T0.CAP0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_ClearCapture(LPC_TIMER, CAP_NUMB);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable rising trigger on T0.CAP0 */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_CaptureRisingEdgeEnable(LPC_TIMER, CAP_NUMB);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_CaptureEnableInt(LPC_TIMER, CAP_NUMB);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable timer interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_ClearPendingIRQ(LPC_TIMER_IRQ);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(LPC_TIMER_IRQ);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable timer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chip_TIMER_Enable(LPC_TIMER);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1) {&lt;/P&gt;&lt;P&gt;&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 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps!&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>Thu, 04 Aug 2016 21:34:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577431#M19619</guid>
      <dc:creator>isaacavila</dc:creator>
      <dc:date>2016-08-04T21:34:01Z</dc:date>
    </item>
    <item>
      <title>Re: example of LPC1837 capture timer?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577432#M19620</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;Isaac,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;I have used example above to test the capture timer on lpcxpresso 4337 board. I have changed line 69 from TIMER_CAPSRC_RISING_PCLK to TIMER_CAPSRC_RISING_CAPN. However the value of "&lt;SPAN&gt;captureValue&lt;/SPAN&gt;" always equals to zero, while I printed the value of "times", it changed really fast which of course exceed the frequency of my input signal. So strange about that. Any ideas about that?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 31 May 2017 08:55:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/example-of-LPC1837-capture-timer/m-p/577432#M19620</guid>
      <dc:creator>yuanbinzhou</dc:creator>
      <dc:date>2017-05-31T08:55:17Z</dc:date>
    </item>
  </channel>
</rss>

