<?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: LPC2368 UART problem</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2368-UART-problem/m-p/552640#M14422</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by anburaj on Sun Aug 18 22:56:00 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Dear All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * For transmission status THRE and TEMT status is given in LSR register.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Whether continuous polling of TEMT (Transmitter empty) cause any system operation ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * When to use THRE and TEMT ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:52:09 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:52:09Z</dc:date>
    <item>
      <title>LPC2368 UART problem</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2368-UART-problem/m-p/552639#M14421</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by anburaj on Wed Aug 14 00:35:53 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Dear All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I'm trying to implement UART transmission based on THRE interrupt. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Operation(from LPC23xx UART sample code): Initially empty flag is set. In Main loop, if empty flag is set, Data Buffer is assigned to U0THR and empty flag is cleared. if THRE interrupt is occurred then empty flag is set in ISR. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Issue is System gets hanging after some time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anyone give some idea to resolve this issue?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//Main function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;main()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; UART0TxEmpty&amp;nbsp; = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; ByteToSend = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; ByteSent = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; while(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(ByteToSend == 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;memcpy(DumpBuff,DataBuff,12);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ByteToSend = 12; ByteSent = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(UART0TxEmpty)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if(ByteToSend != 0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; UART0TxEmpty = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; U0THR = DumpBuff[ByteSent++];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; if(ByteSent &amp;gt;= ByteToSend)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ByteToSend = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ByteSent = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;//ISR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;irq void UART0_IRQHandler (void) &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned char IIRValue;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned char LSRValue;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;IENABLE;/* handles nested interrupt */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IIRValue = U0IIR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IIRValue &amp;gt;&amp;gt;= SKIP_IIR_BIT;/* skip pending bit in IIR */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IIRValue &amp;amp;= INT_IDENTIFICATION;/* check bit 1~3, interrupt identification */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if(IIRValue == IIR_THRE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LSRValue = U0LSR;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if(LSRValue &amp;amp; LSR_THRE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;UART0TxEmpty = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;UART0TxEmpty = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;IDISABLE;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;VICVectAddr = 0;//ACK_INTERRUPT;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:52:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2368-UART-problem/m-p/552639#M14421</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:52:08Z</dc:date>
    </item>
    <item>
      <title>Re: LPC2368 UART problem</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2368-UART-problem/m-p/552640#M14422</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by anburaj on Sun Aug 18 22:56:00 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Dear All,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * For transmission status THRE and TEMT status is given in LSR register.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Whether continuous polling of TEMT (Transmitter empty) cause any system operation ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * When to use THRE and TEMT ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:52:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2368-UART-problem/m-p/552640#M14422</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:52:09Z</dc:date>
    </item>
    <item>
      <title>Re: LPC2368 UART problem</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2368-UART-problem/m-p/552641#M14423</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Mon Aug 19 07:33:46 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Albert Einstein once said something similar like this: "if you can't explain it easily, you haven't understood it."&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You noticed, nobody replied. That's because your code is a mess.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Tidy that up!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Express what you need. Why would you use "&amp;gt;&amp;gt;=" ? To get confused about the location of the bits THRE/TEMT? Well done.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have the impression, you have not&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;well understood bit masks. Check your C knowledge in this area.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Try a program WITHOUT interrupts first. If that works, go ahead with something more difficult.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Understand UART. Then understand VIC. Then combine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You don't do the second step before the first, when you walk, do you?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:52:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC2368-UART-problem/m-p/552641#M14423</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:52:10Z</dc:date>
    </item>
  </channel>
</rss>

