<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>LCD problems</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/16460/lcd-problems</link><description> Hi all, 
My software is based on RTX-Full and many tasks and functions call the lcd_print_msg function. Due to that I wrapped each calling with semaphore, but I still receive some bizarre characters on display. 
Sometimes LCD display part of string where</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: LCD problems</title><link>https://community.arm.com/thread/40518?ContentTypeID=1</link><pubDate>Thu, 10 Jul 2003 07:34:26 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f87fa5e7-a66b-48fe-b899-8e64f9affc69</guid><dc:creator>Oleg Sergeev</dc:creator><description>&lt;p&gt;Okay, in fact of matter LCD display is slow device.&lt;br /&gt;
&lt;br /&gt;
Information you provided, is not enough to&lt;br /&gt;
problem be recognized. Here are some possible reasons:&lt;br /&gt;
&lt;br /&gt;
1. Check board schematic and calculate hardware timings. Some fast microcontrollers have MOVX@ timings shorter than it is required for LCD device. In this case you may use stretch control to make WR and RD cycles&amp;#39; times long enough. For example, T89 devices have M0 bit of AUXR for this solution.&lt;br /&gt;
&lt;br /&gt;
2. Most LCD commands require about 100 mks to be done; there are some ones which require even 4 ms (!). If you use fast enough microcontroller so some NOPs may not help. Really, standard 8051 take 1mks for one NOP at 12Mhz; improved devices may do only 20ns etc.&lt;br /&gt;
To test is it really your problem put alot of NOPs, for example, make loop cycle with 500 ones. If it helps so&lt;br /&gt;
a) make additional routine with NOPs (not good idea if you have many time-sensitive tasks in your project);&lt;br /&gt;
b) create a new routine which sends bytes to LCD and is based on interrupt of a timer with appropriate period. It is best solution I use in my ASM projects.&lt;br /&gt;
Good days!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>