<?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中的主题 emWin on Custom Board</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-on-Custom-Board/m-p/515747#M1329</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by zepedrowdp on Tue Apr 29 15:11:03 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using a LPC1754 with a 2.4'' inch TFT controlled by ILI9341. I used &lt;/SPAN&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fhttp%3A%2F%2Fwww.lpcware.com%2Fcontent%2Fnxpfile%2Fnxpemwin514mcb1700bsp" rel="nofollow" target="_blank"&gt;this BSP for MCB1700&lt;/A&gt;&lt;SPAN&gt; to start. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are a couple of differences between the two boards, so I will need to adapt some code to make this work, sadly I haven't got much experience doing this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I know that MCB1700 has a TFT controller that is different from ILI9341 and therefore uses GUIDRV_FLEXCOLOR_F66708 while mine uses GUIDRV_FLEXCOLOR_F66709. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, the SPI code I saw on LCD_X_SPI.c file seems very different from the one described on ILI9341 datasheet (I'm using 4 wire serial data interface II).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From what I understand I need to alter the code on the file LCD_X_Serial.c and LCDConfig.c that come with emWin on the Samples folders, is there any tutorial or example to follow? I'm a bit lost on how to adapt this code. Help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:18:07 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:18:07Z</dc:date>
    <item>
      <title>emWin on Custom Board</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-on-Custom-Board/m-p/515747#M1329</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by zepedrowdp on Tue Apr 29 15:11:03 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hey!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using a LPC1754 with a 2.4'' inch TFT controlled by ILI9341. I used &lt;/SPAN&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fhttp%3A%2F%2Fwww.lpcware.com%2Fcontent%2Fnxpfile%2Fnxpemwin514mcb1700bsp" rel="nofollow" target="_blank"&gt;this BSP for MCB1700&lt;/A&gt;&lt;SPAN&gt; to start. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are a couple of differences between the two boards, so I will need to adapt some code to make this work, sadly I haven't got much experience doing this.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I know that MCB1700 has a TFT controller that is different from ILI9341 and therefore uses GUIDRV_FLEXCOLOR_F66708 while mine uses GUIDRV_FLEXCOLOR_F66709. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Also, the SPI code I saw on LCD_X_SPI.c file seems very different from the one described on ILI9341 datasheet (I'm using 4 wire serial data interface II).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From what I understand I need to alter the code on the file LCD_X_Serial.c and LCDConfig.c that come with emWin on the Samples folders, is there any tutorial or example to follow? I'm a bit lost on how to adapt this code. Help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:18:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-on-Custom-Board/m-p/515747#M1329</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:18:07Z</dc:date>
    </item>
    <item>
      <title>Re: emWin on Custom Board</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-on-Custom-Board/m-p/515748#M1330</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Wouter on Tue Apr 29 16:20:18 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi José,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You may want to have a look at the &lt;/SPAN&gt;&lt;A href="http://http://www.lpcware.com/content/nxpfile/emwin-porting-guide-ea-lpc1788-bsp-keil-mcb1700-english-version"&gt;emWin porting guide&lt;/A&gt;&lt;SPAN&gt;, this should be quite helpful to get you started.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Wouter&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:18:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-on-Custom-Board/m-p/515748#M1330</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:18:08Z</dc:date>
    </item>
    <item>
      <title>Re: emWin on Custom Board</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-on-Custom-Board/m-p/515749#M1331</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by zepedrowdp on Tue Apr 29 18:34:45 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello Wouter,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I already read that note. The problem is that the example from the AppNote uses a different controller which makes everything harder to adapt... I was hopping for an example that shows at least how to alter LCD_X_Serial.c instead of re-writing the hole file like on the AppNote.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Taking a first glance at LCD_X_Serial.c I was hopping it would be just a matter of indicating which pin does what but it seems to be more than that. &lt;/SPAN&gt;&lt;BR /&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;/*********************************************************************
*
*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hardware configuration
*
**********************************************************************

&amp;nbsp; Needs to be adapted to your target hardware.
*/

// Configuration example:
/*
#define LCD_CLR_A0()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 &amp;amp;= ~(1&amp;lt;&amp;lt;1)
#define LCD_SET_A0()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 |=&amp;nbsp; (1&amp;lt;&amp;lt;1)
#define LCD_CLR_RESET()&amp;nbsp;&amp;nbsp; P7 &amp;amp;= ~(1&amp;lt;&amp;lt;2)
#define LCD_SET_RESET()&amp;nbsp;&amp;nbsp; P7 |=&amp;nbsp; (1&amp;lt;&amp;lt;2) 
#define LCD_CLR_CLK()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 &amp;amp;= ~(1&amp;lt;&amp;lt;3)
#define LCD_SET_CLK()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 |=&amp;nbsp; (1&amp;lt;&amp;lt;3) 
#define LCD_CLR_DATA()&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 &amp;amp;= ~(1&amp;lt;&amp;lt;4)
#define LCD_SET_DATA()&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 |=&amp;nbsp; (1&amp;lt;&amp;lt;4) 
#define LCD_SET_DIR_OUT() P7D = 0xff
#define LCD_CLR_CS()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 &amp;amp;= ~(1&amp;lt;&amp;lt;0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Optional
#define LCD_SET_CS()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 |=&amp;nbsp; (1&amp;lt;&amp;lt;0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Optional
#define LCD_CLR_CS1()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 &amp;amp;= ~(1&amp;lt;&amp;lt;5)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Optional (only for mult. controllers)
#define LCD_SET_CS1()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; P7 |=&amp;nbsp; (1&amp;lt;&amp;lt;5)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Optional (only for mult. controllers)
#define LCD_DELAY(ms)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_Delay(ms)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Optional

*/&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For example, what's the role of LCD_SET_CLK() in this? Should I just indicate the pin where the SPI clock is? But then I don't understand how it works with the initialization function.:&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;
void LCD_X_Init(void) {
&amp;nbsp; LCD_CLR_RESET();
&amp;nbsp; LCD_SET_DIR_OUT();
&amp;nbsp; LCD_SET_CS();
&amp;nbsp; #ifdef LCD_SET_CS1
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_SET_CS1();
&amp;nbsp; #endif
&amp;nbsp; LCD_SET_A0();
&amp;nbsp; LCD_SET_RESET();
&amp;nbsp; LCD_SET_CLK();
&amp;nbsp; LCD_SET_DATA();
&amp;nbsp; LCD_DELAY(20);
&amp;nbsp; LCD_SET_RESET();
&amp;nbsp; LCD_DELAY(20);
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Shouldn't there be some kind of set up of the seria clock or should I write it myself? But then, if I write LCD_SET_CLK() has a function that configures the serial clock, then what is it doing in here?:&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;
/*********************************************************************
*
*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Send1 routine
*
**********************************************************************

&amp;nbsp; Usually, there is no need to modify this routine.
&amp;nbsp; It should be sufficient ot modify the low-level macros above or
&amp;nbsp; in a configuration file.
*/

/* Write 1 byte, MSB first */

static void Send1(unsigned char Data) {
&amp;nbsp; if ((Data &amp;gt;&amp;gt; 7) &amp;amp; 1) LCD_SET_DATA(); else LCD_CLR_DATA(); LCD_CLR_CLK(); LCD_SET_CLK();
&amp;nbsp; if ((Data &amp;gt;&amp;gt; 6) &amp;amp; 1) LCD_SET_DATA(); else LCD_CLR_DATA(); LCD_CLR_CLK(); LCD_SET_CLK();
&amp;nbsp; if ((Data &amp;gt;&amp;gt; 5) &amp;amp; 1) LCD_SET_DATA(); else LCD_CLR_DATA(); LCD_CLR_CLK(); LCD_SET_CLK();
&amp;nbsp; if ((Data &amp;gt;&amp;gt; 4) &amp;amp; 1) LCD_SET_DATA(); else LCD_CLR_DATA(); LCD_CLR_CLK(); LCD_SET_CLK();
&amp;nbsp; if ((Data &amp;gt;&amp;gt; 3) &amp;amp; 1) LCD_SET_DATA(); else LCD_CLR_DATA(); LCD_CLR_CLK(); LCD_SET_CLK();
&amp;nbsp; if ((Data &amp;gt;&amp;gt; 2) &amp;amp; 1) LCD_SET_DATA(); else LCD_CLR_DATA(); LCD_CLR_CLK(); LCD_SET_CLK();
&amp;nbsp; if ((Data &amp;gt;&amp;gt; 1) &amp;amp; 1) LCD_SET_DATA(); else LCD_CLR_DATA(); LCD_CLR_CLK(); LCD_SET_CLK();
&amp;nbsp; if ((Data &amp;gt;&amp;gt; 0) &amp;amp; 1) LCD_SET_DATA(); else LCD_CLR_DATA(); LCD_CLR_CLK(); LCD_SET_CLK();
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:18:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-on-Custom-Board/m-p/515749#M1331</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:18:09Z</dc:date>
    </item>
  </channel>
</rss>

