<?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中的主题 Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575004#M22101</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Wenzu on Mon Dec 20 01:39:24 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Thanks for your reply.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However I am not using semihosting.... I am using a USB-Uart(TTL) adapter on the TXD/RXD pins on LPCExpresso.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Does your post above still count ??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you kindly point me to the right direction to be able to output my variable "timer_count" over uart as in my attempt at printf below ??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have enabled "stdio.h" but to no avail.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your support.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I feel this is going to be a nice ride :)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 01:06:36 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T01:06:36Z</dc:date>
    <item>
      <title>Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/574998#M22095</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Wenzu on Sun Dec 19 06:11:55 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi, Season's greetings to all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm coming from PIC 18F and 24F background, also Arduino.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am used to code in Basic, using varius IDE's. Familiar and also comfortable with C.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have just purchased an LPCExpresso 1343 board because I am forseeing that my next projects need all horsepower that this part can provide. I have tried the provided examples in Develop. All work fine. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However, it is my impression that the way to work with what happens during interrupt vectors is not shown in these examples.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What I'm trying to do as a first step is to measure a PWM coming from a signal generator's square wave output ( limited to 3.3Volts output ) into Port2.1, and at first, switching the LED ( Port0.7) in sync with this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I've added the Uart to let me know my connections are OK. Whatever I type is echoed back. This works fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I tried adding a Timer to count the High pulse, and also derive the period of the incoming PWM, and this is where I failed miserably. ( I have removed the offending and non working code.. out of shyness &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &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;[SIZE=2][COLOR=#7f0055]

[B][SIZE=2][COLOR=#7f0055]#include
[/COLOR][/SIZE][/B][/COLOR][/SIZE][LEFT][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"LPC13xx.h"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* LPC13xx Peripheral Registers */[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f5f]
[LEFT][/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]#include[/LEFT]
[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][/B][LEFT][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"gpio.h"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff]
[LEFT][/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]#include[/LEFT]
[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][/B][LEFT][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"uart.h"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff]
[LEFT][/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]#include[/LEFT]
[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][/B][LEFT][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"config.h"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff]
[/COLOR][/SIZE]
[LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]extern[/LEFT]
[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][/B][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]volatile[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#005032][SIZE=2][COLOR=#005032]uint32_t[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] UARTCount;[/SIZE]
[LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]extern[/LEFT]
[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][/B][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]volatile[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#005032][SIZE=2][COLOR=#005032]uint8_t[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] UARTBuffer[BUFSIZE];[/SIZE]
 
[LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/*****************************************************************************[/COLOR][/SIZE]
[SIZE=2][COLOR=#3f7f5f]** Main Function main()[/COLOR][/SIZE]
[SIZE=2][COLOR=#3f7f5f]******************************************************************************/[/COLOR][/SIZE]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]int[/LEFT]
[/LEFT]
[/COLOR][/SIZE][/COLOR][/SIZE][/B][LEFT][SIZE=2][B]main[/B] ([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]void[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2])[/SIZE]
[LEFT][SIZE=2]{[/SIZE][/LEFT]
 
[LEFT][SIZE=2]UARTInit(115200);[/SIZE]
[SIZE=2]GPIOInit();[/SIZE]
[SIZE=2]GPIOSetDir( PORT2, 1, 0 );[/SIZE]
[SIZE=2]GPIOSetInterrupt( PORT2, 1, 0, 1, 1 );[/SIZE][/LEFT]
 
[LEFT][SIZE=2]GPIOIntEnable( PORT2, 1 );[/SIZE][/LEFT]
 
[LEFT][SIZE=2]GPIOSetDir( LED_PORT, LED_BIT, 1 );[/SIZE]
[SIZE=2]GPIOSetValue( LED_PORT, LED_BIT, LED_OFF );[/SIZE][/LEFT]
 
[LEFT][SIZE=2][U]UARTSend([/U][/SIZE][U][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Pulse Length Counter"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], 20);[/SIZE][/U][/LEFT]
 
[LEFT][SIZE=2]&amp;amp;#12288;[/SIZE]
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]while[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] (1)[/SIZE]
[SIZE=2]{[/SIZE]
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2] ( UARTCount != 0 ) [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// whatever I type in Hyper terminal is echoed back.[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f5f]
[/COLOR][/SIZE][SIZE=2]{[/SIZE]
[SIZE=2]LPC_UART-&amp;gt;[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]IER[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = IER_THRE | IER_RLS; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* Disable RBR */[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f5f]
[/COLOR][/SIZE][SIZE=2]UARTSend( ([/LEFT]
[/LEFT]
[/SIZE][LEFT][SIZE=2][COLOR=#005032][SIZE=2][COLOR=#005032]uint8_t[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] *)UARTBuffer, UARTCount );[/SIZE]
[LEFT][SIZE=2]UARTCount = 0;[/SIZE]
[SIZE=2]LPC_UART-&amp;gt;[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]IER[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = IER_THRE | IER_RLS | IER_RBR; [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* Re-enable RBR */[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#3f7f5f]
[/COLOR][/SIZE][SIZE=2]}[/SIZE]
[SIZE=2]}[/SIZE]
[SIZE=2]}[/SIZE][/LEFT]
 
[LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/*********************************************************************************[/COLOR][/SIZE]
[SIZE=2][COLOR=#3f7f5f]** End Of File[/COLOR][/SIZE]
[SIZE=2][COLOR=#3f7f5f]*********************************************************************************/[/COLOR][/SIZE][/LEFT]
[/COLOR][/SIZE]&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What I would like, is for some pointers to the right direction, in what I would like to achieve as a first step as mentioned above.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks !!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/LEFT]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/574998#M22095</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:31Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/574999#M22096</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Sun Dec 19 07:27:34 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Step1: Config Timer as Capture input, enable IRQ&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Step2: Read times in ISR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Step3: Ready &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sample:&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;
#define&amp;nbsp; EN_CT16B1 (1&amp;lt;&amp;lt;8)
volatile unsigned int timer_up;&amp;nbsp;&amp;nbsp; //timer high
volatile unsigned int timer_down;&amp;nbsp; //timer low
 
void TIMER16_1_IRQHandler(void)
{
 LPC_TMR16B1-&amp;gt;TC = 0;&amp;nbsp; //reset counter
 if(LPC_GPIO1-&amp;gt;DATA &amp;amp; (1&amp;lt;&amp;lt;8) )
 {
&amp;nbsp; timer_down = LPC_TMR16B1-&amp;gt;CR0;
//&amp;nbsp; LED_ON;
 }
 else
 {
&amp;nbsp; timer_up = LPC_TMR16B1-&amp;gt;CR0;
//&amp;nbsp; LED_OFF;
 }
 LPC_TMR16B1-&amp;gt;IR |= (1&amp;lt;&amp;lt;4); //reset interrupt
}
 
void timer_config(void)
{
 LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (EN_CT16B1);//enable clock CT16B1
 //init io CT16B1_CAP0
 LPC_IOCON-&amp;gt;PIO1_8 = (1&amp;lt;&amp;lt;0) | (1&amp;lt;&amp;lt;4); //CT16B1_CAP0 &amp;amp; pullup
 LPC_TMR16B1-&amp;gt;CTCR = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //use timer mode
 LPC_TMR16B1-&amp;gt;CCR&amp;nbsp; = 7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //capture rising &amp;amp; falling edge, enable interrupt 
 LPC_TMR16B1-&amp;gt;TCR&amp;nbsp; = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //start timer
 NVIC_EnableIRQ(TIMER_16_1_IRQn);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/574999#M22096</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:32Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575000#M22097</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Wenzu on Sun Dec 19 16:19:47 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Zero,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thankyou for posting a sample code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I notice that you chose to use the InputCapture hardware module present on Port1_8. There are 2 inputs that can be used with Timer 16, and 2 with Timer 32, as I'm getting more familiar with the 1343UserManual.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tried to work around the code you posted, but could not get a GP output to echo the input pulse stream from my signal generator. I have a scope and am monitoring both input (p1,8) and output(p0,7 (LED)) .&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;here's the code I'm trying:&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;
#include "LPC13xx.h"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* LPC13xx Peripheral Registers */
#include "gpio.h"
#include "uart.h"
#include "config.h"

#define&amp;nbsp; EN_CT16B1 (1&amp;lt;&amp;lt;8)
volatile unsigned int timer_up;&amp;nbsp;&amp;nbsp; //timer high
volatile unsigned int timer_down;&amp;nbsp; //timer low

extern volatile uint32_t UARTCount;
extern volatile uint8_t UARTBuffer[BUFSIZE];

&amp;nbsp;&amp;nbsp;&amp;nbsp; void TIMER16_1_IRQHandler(void)
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;TC = 0;&amp;nbsp; //reset counter
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(LPC_GPIO1-&amp;gt;DATA &amp;amp; (1&amp;lt;&amp;lt;8) )
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_down = LPC_TMR16B1-&amp;gt;CR0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend("High",4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetValue( 0, 7, 1 );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LED_ON;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_up = LPC_TMR16B1-&amp;gt;CR0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend("Low",3);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetValue( 0, 7, 0 );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LED_OFF;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;IR |= (1&amp;lt;&amp;lt;4); //reset interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }


int main (void)
{

&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTInit(115200);
&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOInit();

&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetDir( PORT1, 8, 0 );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // setting P1_8 as input
&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetInterrupt( PORT1, 8, 0, 1, 1 );
&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOIntEnable( PORT1, 8 );

&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetDir( 0, 7, 1 );&amp;nbsp;&amp;nbsp; // Setting the LED port as output ( to echo input )
&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetValue( 0, 7, 0 );



&amp;nbsp;&amp;nbsp;&amp;nbsp; //void timer_config(void)
&amp;nbsp;&amp;nbsp;&amp;nbsp; //{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (EN_CT16B1);&amp;nbsp;&amp;nbsp;&amp;nbsp; //enable clock CT16B1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //init i/o CT16B1_CAP0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_8 = (1&amp;lt;&amp;lt;0) | (1&amp;lt;&amp;lt;4);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //CT16B1_CAP0 &amp;amp; pullup
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;CTCR = 0;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //use timer mode
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;CCR&amp;nbsp; = 7;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //capture rising &amp;amp; falling edge, enable interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;TCR&amp;nbsp; = 1;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //start timer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(TIMER_16_1_IRQn);
&amp;nbsp;&amp;nbsp;&amp;nbsp; //}

&amp;nbsp;&amp;nbsp;&amp;nbsp; //timer_config();
&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend("Pulse Length Counter", 20);

&amp;nbsp; while (1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( UARTCount != 0 ) // 'whatever I type in Hyper terminal is echoed back.'
&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_UART-&amp;gt;IER = IER_THRE | IER_RLS;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable RBR */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend( (uint8_t *)UARTBuffer, UARTCount );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTCount = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART-&amp;gt;IER = IER_THRE | IER_RLS | IER_RBR;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Re-enable RBR */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In my original tests.. I was trying to use GPIO interrupts, so as not to use the Capture function and leave that for high speed capturing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think I still need some more spoon feeding, if anyone can provide some enlightenment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am feeling exactly like when you travel to a new ( small, unknown and remote) airport for the first time, and do not know where to go for your luggage = ( completely lost ) ... ( unless you follow the passengers that were also on the same plane&amp;nbsp; ).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your input.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575000#M22097</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:33Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575001#M22098</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Sun Dec 19 16:49:37 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;1.Remove&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;GPIOSetDir( PORT1, 8, 0 ); // setting P1_8 as input&lt;BR /&gt;GPIOSetInterrupt( PORT1, 8, 0, 1, 1 );&lt;BR /&gt;GPIOIntEnable( PORT1, 8 );&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Using Capture Input and also GPIO Interrupt with the same Pin isn't working.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Set a breakpoint in the ISR to control if this ISR is served (&amp;amp; triggered).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575001#M22098</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:34Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575002#M22099</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Wenzu on Sun Dec 19 19:25:10 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Zero,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the tip on init. It now works.. sort of...&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;
#include "LPC13xx.h"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* LPC13xx Peripheral Registers */
#include "gpio.h"
#include "uart.h"
#include "config.h"
#include "stdio.h"

#define&amp;nbsp; EN_CT16B1 (1&amp;lt;&amp;lt;8)
volatile unsigned int timer_up;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //timer high
volatile unsigned int timer_down;&amp;nbsp;&amp;nbsp; //timer low
volatile unsigned int timer_count;&amp;nbsp; //timer difference

extern volatile uint32_t UARTCount;
extern volatile uint8_t UARTBuffer[BUFSIZE];

&amp;nbsp;&amp;nbsp; void timer_config(void)
&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; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (EN_CT16B1);&amp;nbsp;&amp;nbsp;&amp;nbsp; //enable clock CT16B1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //init i/o CT16B1_CAP0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_IOCON-&amp;gt;PIO1_8 = (1&amp;lt;&amp;lt;0) | (1&amp;lt;&amp;lt;4);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //CT16B1_CAP0 &amp;amp; pullup
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;CTCR = 0;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //use timer mode
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;CCR&amp;nbsp; = 7;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //capture rising &amp;amp; falling edge, enable interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;TCR&amp;nbsp; = 1;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //start timer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(TIMER_16_1_IRQn);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; void TIMER16_1_IRQHandler(void)
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;TC = 0;&amp;nbsp; //reset counter
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(LPC_GPIO1-&amp;gt;DATA &amp;amp; (1&amp;lt;&amp;lt;8) )
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_down = LPC_TMR16B1-&amp;gt;CR0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend("H",1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetValue( 0, 7, 1 );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LED_ON;
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_up = LPC_TMR16B1-&amp;gt;CR0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend("L",1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetValue( 0, 7, 0 );&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //LED_OFF;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_count = (timer_up - timer_down);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("Timer16B1 Count : %d\n", timer_count);

&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TMR16B1-&amp;gt;IR |= (1&amp;lt;&amp;lt;4); //reset interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }


int main (void)
{

&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTInit(115200);
&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOInit();
&amp;nbsp;&amp;nbsp;&amp;nbsp; //GPIOSetDir( PORT2, 1, 0 );
&amp;nbsp;&amp;nbsp;&amp;nbsp; //GPIOSetInterrupt( PORT2, 1, 0, 1, 1 );&amp;nbsp;&amp;nbsp;&amp;nbsp; // original 'extint' example - input pin
&amp;nbsp;&amp;nbsp;&amp;nbsp; //GPIOIntEnable( PORT2, 1 );

&amp;nbsp;&amp;nbsp;&amp;nbsp; //GPIOSetDir( PORT1, 8, 0 );&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;&amp;nbsp; // Not needed to Setup Port1_8 as input.. done in TimerConfig.
&amp;nbsp;&amp;nbsp;&amp;nbsp; //GPIOSetInterrupt( PORT1, 8, 0, 1, 1 );
&amp;nbsp;&amp;nbsp;&amp;nbsp; //GPIOIntEnable( PORT1, 8 );

&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetDir( 0, 7, 1 );&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;&amp;nbsp;&amp;nbsp; // set LPCExpresso LED as echo of input pulse stream
&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOSetValue( 0, 7, 0 );

&amp;nbsp;&amp;nbsp;&amp;nbsp; timer_config();


&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend("Pulse Length Counter", 20);

&amp;nbsp; while (1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( UARTCount != 0 ) // 'whatever I type in Hyper terminal is echoed back.'
&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_UART-&amp;gt;IER = IER_THRE | IER_RLS;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable RBR */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTSend( (uint8_t *)UARTBuffer, UARTCount );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UARTCount = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART-&amp;gt;IER = IER_THRE | IER_RLS | IER_RBR;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Re-enable RBR */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }


&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN&gt;I get an L or H on each transition of the input stream. The echo from Uart is still OK.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am now having trouble with the Printf statement ( within the Timer16 ISR ) , when trying to output the difference between timer counts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;To be very honest, I've been researching how printf works, and what the %d.. etc mean. ( never used it before )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Last push, and I'll be fending for myself for a while. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks so much for getting me up to grips with my first steps !!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575002#M22099</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:34Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575003#M22100</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CodeRedSupport on Mon Dec 20 01:05:47 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Using printf's with interrupts - and in particular within interrupt handlers is not recommended. This is because the semihosting operation that the printf triggers between the target and the PC running the debugger causes the CPU to be halted whilst the string to be displayed is transferred up to the host (and potentially halted multiple times). This will prevent any "real-time" behaviour of the rest of you code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;More information at:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://support.code-red-tech.com/CodeRedWiki/UsingPrintf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CodeRedSupport&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575003#M22100</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:35Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575004#M22101</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Wenzu on Mon Dec 20 01:39:24 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Thanks for your reply.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;However I am not using semihosting.... I am using a USB-Uart(TTL) adapter on the TXD/RXD pins on LPCExpresso.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Does your post above still count ??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can you kindly point me to the right direction to be able to output my variable "timer_count" over uart as in my attempt at printf below ??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have enabled "stdio.h" but to no avail.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your support.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I feel this is going to be a nice ride :)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575004#M22101</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:36Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575005#M22102</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Mon Dec 20 01:51:13 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;To use printf with your working UART (no semihosting) you just need to add&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;
#include &amp;lt;stdio.h&amp;gt;
 
// Function __write() -&amp;gt;printf
int __write (int iFileHandle, uint8_t *pcBuffer, uint8_t iLength)
{
 UARTSend(pcBuffer,iLength);
 return iLength;
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If you set CR_INTEGER_PRINTF your code will just increase a few kilobytes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;See LPCXpressoGettingStarted.pdf in your LPCXpresso folder.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;To avoid problems in your ISR it's always a good idea to set a flag in the ISR and do everything else within your while loop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &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;
volatile unsigned char flag_low=0;
volatile unsigned char flag_high=0;
 
ISR...
{
 ...
 timer_down = LPC_TMR16B1-&amp;gt;CR0;
 flag_low=1;
...
 timer_up = LPC_TMR16B1-&amp;gt;CR0;
 flag_high=1;
...
}
 
while(1)
{
 ...
 if (flag_low &amp;amp; flag_high)
 {
&amp;nbsp; flag_low =0;
&amp;nbsp; flag_high =0;
&amp;nbsp; ...calculate and 
&amp;nbsp; printf()
 } 
 ...
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Next step: Use a timer to printf every second -&amp;gt; see SysTick Timer in User Manual / Examples.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575005#M22102</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:36Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575006#M22103</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CodeRedSupport on Mon Dec 20 02:12:20 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;A printf() will always be semihosted, unless you retarget it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Zero's post gives you the basis of how to retarget, but I we also have an FAQ on this...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://support.code-red-tech.com/CodeRedWiki/UartPrintf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note that if you are using LPCXpresso for Linux, Zero's code will not work. See the following FAQ for more information...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://support.code-red-tech.com/CodeRedWiki/redlib_v2_notes&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CodeRedSupport&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575006#M22103</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:37Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575007#M22104</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Wenzu on Wed Dec 22 15:00:34 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your support till now.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My aim, as part one of my learning curve, is to be able to read all capture timers on the LPC1343.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Zero, the external UART display from a TTL-USB works fast with your &amp;lt;no semihosting&amp;gt; code, using many instances of printf.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(Turbo Thanks for it !! .. still need to understand what magic it does !!) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;( Need to read the CodeRed printf Wiki a couple of times ...)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;CT16B0, CT16B1, CT32B0..... work fine now and give me reasonable results.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Still need to learn how to tune the prescalers. They're at 70 now, and result in mS is the closest I could get it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But when I come to write the code for CT32B1 capture timer, Code Red &amp;lt;develop&amp;gt; throws me an error due to Port P1_0 not available, most probably because of JTAG ???&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What can I do to be able to access it ??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for all your help !!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575007#M22104</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:37Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575008#M22105</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Wed Dec 22 15:20:42 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Reset Value in IOCON_JTAG_TMS_PIO1_0 register is TMS (JTAG). If you don't use JTAG (LPCXpresso uses SWD) you can set it's function to CT32B1_CAP0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &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;//set CT32B1_CAP0
LPC_IOCON-&amp;gt;JTAG_TMS_PIO1_0 &amp;amp;= 0x00;
LPC_IOCON-&amp;gt;JTAG_TMS_PIO1_0 |= ((0x01&amp;lt;&amp;lt;3)| 0x03);//CT32B1_CAP0, pull-down&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575008#M22105</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:38Z</dc:date>
    </item>
    <item>
      <title>Re: Total Noob needs a small push - interrupt pulse length counter displayed on Uart.</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575009#M22106</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Wenzu on Wed Dec 22 15:28:33 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Eeek....OK... Zero ,thanks for the heads up on the different name on PIO1_0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;:)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Many Thanks !!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 01:06:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Total-Noob-needs-a-small-push-interrupt-pulse-length-counter/m-p/575009#M22106</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T01:06:38Z</dc:date>
    </item>
  </channel>
</rss>

