<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>LeafLabs Garden &#187; Topic: Problem with WH1604B and LiquidCrystal</title>
		<link>http://forums.leaflabs.com/topic.php?id=1023</link>
		<description>A place to share, learn, and grow...</description>
		<language>en-US</language>
		<pubDate>Fri, 22 Jan 2016 00:18:24 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://forums.leaflabs.com/search.php</link>
		</textInput>
		<atom:link href="http://forums.leaflabs.com/rss.php?topic=1023" rel="self" type="application/rss+xml" />

		<item>
			<title>suso-mc on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-11790</link>
			<pubDate>Tue, 17 Jul 2012 14:54:33 +0000</pubDate>
			<dc:creator>suso-mc</dc:creator>
			<guid isPermaLink="false">11790@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Is there a LiquidCrystal Library version supporting serial port communication (UART)?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>crenn on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6293</link>
			<pubDate>Sat, 10 Sep 2011 19:00:51 +0000</pubDate>
			<dc:creator>crenn</dc:creator>
			<guid isPermaLink="false">6293@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I haven't seen any, but there could be. There could be a lot of variations that we don't know of, however, at this present stage, we haven't had a request for anything more than 4 lines. Does the Arduino Liquid Crystal Library cater for larger screens?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6286</link>
			<pubDate>Sat, 10 Sep 2011 12:08:24 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6286@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;crenn - Are you saying all (practical) LCD controllers only need 3 numbers: line 0 offset, line 1 offset and cols?&#60;/p&#62;
&#60;p&#62;Are there no 8 line LCD controllers in the same family of devices?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>crenn on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6281</link>
			<pubDate>Fri, 09 Sep 2011 19:11:41 +0000</pubDate>
			<dc:creator>crenn</dc:creator>
			<guid isPermaLink="false">6281@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;The values currently passed to the library through begin are enough to be used for the offsets.&#60;/p&#62;
&#60;p&#62;Either chip uses Line 1- offset 0x00 or 0 in base 10, Line 2- offset 0x40 or 64 in base then. When you change have the 16 character wide variation, you get Line 3- offset 0x10 or 16 in base 10, Line 4- offset 0x50 or 80 in base 10. If you have the 20 character wide variation, you get Line 3- offset 0x14 or 20 in base 10, Line 4- offset 0x54 or 84 in base 10. Currently it's a minor bug in the library which doesn't involve a major redesign of it, it's an easy fix.&#60;/p&#62;
&#60;p&#62;I'd suggest having the offset data moved as a private data member of the class, and at when begin is called, it sets up the offset:&#60;br /&#62;
offset[0]=0x00;&#60;br /&#62;
offset[1]=0x40;&#60;br /&#62;
offset[2]=offset[0]+cols;&#60;br /&#62;
offset[3]=offset[1]+cols;&#60;/p&#62;
&#60;p&#62;That should fix the bug which minimal changes.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6263</link>
			<pubDate>Fri, 09 Sep 2011 11:32:35 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6263@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;robodude666 - I absolutely agree that there should be meanignful names for the default values provided by the library. What did I write to cause you to think that?&#60;/p&#62;
&#60;p&#62;I wasn't suggest anything as opaque as:&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;uint8 row_offsets[] = { 0x00, 0x40, 0x10, 0x50 }; // What does this mean???
lcd.begin(&#38;amp;row_offsets, 20, 2);&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;IMHO, that is tasteless and unhelpful.&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;is extremely confusing to anyone who doesn't know that those are the beginning address of each row. A user may attempt to change them, and will wonder why the LCD stopped working as expected.
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;If they understand so little, why would they NOT use a definition provided by the library?&#60;/p&#62;
&#60;p&#62;I was thinking along the lines of:&#60;br /&#62;
&#60;code&#62;uint16 LCD_WH1604B_ROWS[] = { 0x00, 0x40, 0x10, 0x50 };&#60;/code&#62;&#60;br /&#62;
which could be syntactically identical to your proposal, or even&#60;br /&#62;
&#60;code&#62;uint16 LCD_20x4_WH1604B_ROWS[] = { 0x00, 0x40, 0x10, 0x50 };&#60;/code&#62;&#60;br /&#62;
to make it more explicit. &#60;/p&#62;
&#60;p&#62;I'd consider:&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;struct _LCD_DEVICE_ {
    uint8 width;   // number of columns
    uint8 height;   // number of rows
    uint16 row_offsets[0];  // row offset values
};
typedef struct _LCD_DEVICE_ LCD_DEVICE;
LCD_DEVICE LCD_20x4 = { 20, 4, { 0x00, 0x40, 0x10, 0x50 }};&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;So that it is all wrapped up behind one name.&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;At least half of the Arduino community doesn't know how to read a datasheet to extract the required offset values
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;So in your estimation, almost half of Arduino community could find the necessary information, and hence code up something to use an LCD all by themselves if the API gives them that facility?&#60;br /&#62;
Excellent.&#60;br /&#62;
I am all in favour of making it easy for people to reuse code beyond its original (tested) intent by providing open solutions.&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;it would only create the circulation of 3 sets of boiler-plate code that will be copy+pasted.
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;No.&#60;br /&#62;
That would only be true if we didn't provide definitions for the default cases, which is NOT what I propose. I think we should provide definitions for the hardware we can test.&#60;/p&#62;
&#60;p&#62;The code used for the supported cases would be syntactically identical.&#60;/p&#62;
&#60;p&#62;Of course, the user would have to write code for a case not supported, but they have the option to do that if they need to.&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;other derivatives exist but they're only clones which feature the same instruction set
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;So, how does someone figure out which clone their LCD uses?&#60;br /&#62;
How do they define the properties so that the library works, and so that the parameter to &#60;code&#62;begin&#60;/code&#62; is correct?&#60;/p&#62;
&#60;p&#62;On a slightly different tack, if they are all the same controller anyway, and it is only the size and row offsets which vary, why should we make the name of the controller matter at all?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>robodude666 on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6258</link>
			<pubDate>Fri, 09 Sep 2011 10:45:35 +0000</pubDate>
			<dc:creator>robodude666</dc:creator>
			<guid isPermaLink="false">6258@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;These LCDs feature an included table of 256 character table, and all commands sent to the LCD are 8-bit (the LCD can be used in 4-bit or 8-bit parallel mode). These are three of the most popular controllers on the market, other derivatives exist but they're only clones which feature the same instruction set. I haven't heard of any variants that feature an extended character table, though some may exist. It can be left as a 16-bit value, it doesn't really matter - it's only 4 out of 20 thousand bytes of ram.&#60;/p&#62;
&#60;p&#62;I'm against the need for a person to pass in an array of GRAM addresses into a wirish class. The point of the wirish class is to simplify the use of peripherals and devices. At least half of the Arduino community doesn't know how to read a datasheet to extract the required offset values, and it would only create the circulation of 3 sets of boiler-plate code that will be copy+pasted. Instead we could have a simple begin statement such as:&#60;/p&#62;
&#60;p&#62;&#60;code&#62;lcd.begin(LC_HD44780U_CONTROLLLER, 20, 2);&#60;/code&#62;&#60;/p&#62;
&#60;p&#62;which will configure the library to support a 20x2 LCD that uses the HD44780U's GRAM addresses. This features no &#34;magic numbers&#34; that get passed in. It's very clear that the LCD is using a HD44780U controller. Where as something like:&#60;/p&#62;
&#60;pre&#62;&#60;code&#62;uint8 row_offsets[] = { 0x00, 0x40, 0x10, 0x50 }; // What does this mean???
lcd.begin(&#38;amp;row_offsets, 20, 2);&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;is extremely confusing to anyone who doesn't know that those are the beginning address of each row. A user may attempt to change them, and will wonder why the LCD stopped working as expected.&#60;/p&#62;
&#60;p&#62;While I understand the need to decouple the library from specific controllers, it would only end up making the public APIs more confusing to use for beginners.&#60;/p&#62;
&#60;p&#62;If we want to make everyone happy, the LiquidCrystal library can have a private member that holds the offset values. The begin method will accept either a controller's name or a special &#34;NONE&#34; value. If a known controller is passed in, the member will be populated with the corresponding values for that controller/row/col configuration. If a special &#34;NONE&#34; value is passed, the user has the right to update the offset array using a setter method. This will allow easy use for common LCDs, and if a less common controller is used, the library can still be used once the user gets the correct offset address from the datasheet.&#60;/p&#62;
&#60;p&#62;-robodude666
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6255</link>
			<pubDate>Fri, 09 Sep 2011 10:30:48 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6255@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;robodude666&#60;br /&#62;
&#60;blockquote&#62;All commands sent to the LCD will be 8-bit, so there's no reason to dedicate a 16-bit int; it's just a waste of 4 bytes of ram.&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;I am not talking about the commands in general, just the row-offset values. &#60;/p&#62;
&#60;p&#62;I realise that this controller takes 8-bit commands, but I don't see a need to make that a feature of the public LCD API, and hence how the row offsets are defined, unless you are saying *ALL* LCD controllers which map onto the existing LCD library API have less than 256 character displays. It only takes one which needs an offset bigger than 255 to break that assumption, and hence break the API.&#60;/p&#62;
&#60;blockquote&#62;&#60;p&#62;I think it would be wise to include ALL of the possible row_offsets array in the Library.
&#60;/p&#62;&#60;/blockquote&#62;
&#60;p&#62;I am a big fan of KISS.&#60;br /&#62;
I am not a fan of pushing changes which are not tested.&#60;br /&#62;
Let's fix what is broken, and can be tested, and wait to see what else is needed?&#60;/p&#62;
&#60;p&#62;We could modify &#60;code&#62;begin&#60;/code&#62; to take a row-offset map along the lines suggested by Xavier.&#60;br /&#62;
We could change &#60;code&#62;begin&#60;/code&#62; so that a row offset map is a required parameter, and have no default.&#60;br /&#62;
We could provide a row offset map for the two LCDs being used, and hence they can be tested before the changes are pushed.&#60;/p&#62;
&#60;p&#62;A tiny amount of documentation to explain how to set up for a different LCD would be enough to support all other LCDs which would otherwise work with the existing library.&#60;/p&#62;
&#60;p&#62;Of course, if you are volunteering to test &#34;ALL of the possible row_offsets array&#34; combinations on real hardware, then that is fabulous. Do you posses an example of them all?
&#60;/p&#62;</description>
		</item>
		<item>
			<title>robodude666 on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6252</link>
			<pubDate>Fri, 09 Sep 2011 10:09:59 +0000</pubDate>
			<dc:creator>robodude666</dc:creator>
			<guid isPermaLink="false">6252@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;All commands sent to the LCD will be 8-bit, so there's no reason to dedicate a 16-bit int; it's just a waste of 4 bytes of ram.&#60;/p&#62;
&#60;p&#62;However... There's nothing wrong with the library.&#60;/p&#62;
&#60;p&#62;There are dozens of these kinds of LCDs on the market. They all look identical, and their controllers are extremely similar but they all have slight variations to the address mapping based on the configuration of the LCD.&#60;/p&#62;
&#60;p&#62;The LiquidCrystal library included with libmaple is configured for a 20x2 or 20x4 LCD, for example the &#60;a href=&#34;http://www.sparkfun.com/datasheets/LCD/GDM2004D.pdf&#34;&#62;GDM2004D&#60;/a&#62; (see page 8 of 9). The other common LCD used is the &#60;a href=&#34;http://www.serialwombat.com/parts/hd44780.pdf&#34;&#62;HD44780U&#60;/a&#62;. The controller used by the &#60;a href=&#34;http://www.winstar.com.tw/UserFiles/ProductImages/125231465401825465505.jpg&#34;&#62;WH1604B&#60;/a&#62; in the OP's post is the &#60;a href=&#34;http://www.asix.cz/download/pvk40/ks0066u.pdf&#34;&#62;KS0066&#60;/a&#62;. As you can see, the GRAM addresses for the last two rows are slightly different between the GDM2004D and the WG1604B's KS0066 controllers.&#60;/p&#62;
&#60;p&#62;Each LCD configuration (16x2, 16x4, 20x2, 20x4) will have slightly different GRAM address mapping. Because of this, I think it would be wise to include ALL of the possible row_offsets array in the Library, and require a value to be passed to the LiquidCrystal library that states what LCD is being used so that the correct offsets are selected.&#60;/p&#62;
&#60;p&#62;-robodude666
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6246</link>
			<pubDate>Fri, 09 Sep 2011 09:23:37 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6246@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Xavier - I was pondering having an &#60;code&#62;initialiseRowOffsets&#60;/code&#62; function, but maybe initialising at &#60;code&#62;begin&#60;/code&#62; is better.&#60;/p&#62;
&#60;p&#62;Are those LCD's less than 256 characters?&#60;br /&#62;
In that case, the row-offsets could be:&#60;br /&#62;
&#60;code&#62;uint8 row_offsets[] = { 0x00, 0x40, 0x10, 0x50 };&#60;/code&#62;&#60;br /&#62;
which would make for less initialisation.
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Xavier on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6245</link>
			<pubDate>Fri, 09 Sep 2011 06:15:05 +0000</pubDate>
			<dc:creator>Xavier</dc:creator>
			<guid isPermaLink="false">6245@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;It works fine as it is for 20x4 LCDs.&#60;br /&#62;
So maybe row_offsets shoud be initialized in the lcd.begin(...) function...&#60;/p&#62;
&#60;p&#62;Xavier
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6244</link>
			<pubDate>Fri, 09 Sep 2011 05:46:42 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6244@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Roma - Cool! &#60;/p&#62;
&#60;p&#62;Your reply will help future user too.&#60;/p&#62;
&#60;p&#62;(PS - I took the liberty of adding backticks to pretty print your code, I hope that's okay)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Roma on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6243</link>
			<pubDate>Fri, 09 Sep 2011 04:04:31 +0000</pubDate>
			<dc:creator>Roma</dc:creator>
			<guid isPermaLink="false">6243@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I found the problem.&#60;/p&#62;
&#60;p&#62;in LiquidCrystal.cpp&#60;/p&#62;
&#60;p&#62;  this is correct addresses for 4-lines LCD&#60;br /&#62;
  int row_offsets[] = { 0x00, 0x40, 0x10, 0x50 };&#60;br /&#62;
  accoding Datasheet&#60;/p&#62;
&#60;pre&#62;&#60;code&#62;void LiquidCrystal::setCursor(uint8 col, uint8 row)
{
  // int row_offsets[] = { 0x00, 0x40, 0x14, 0x54 }; THIS IS NOT CORRECT
  int row_offsets[] = { 0x00, 0x40, 0x10, 0x50 };  

  if ( row &#38;gt; _numlines ) {
    row = _numlines-1;    // we count rows starting w/0
  }

  command(LCD_SETDDRAMADDR &#124; (col + row_offsets[row]));
}&#60;/code&#62;&#60;/pre&#62;</description>
		</item>
		<item>
			<title>Roma on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6238</link>
			<pubDate>Fri, 09 Sep 2011 00:49:15 +0000</pubDate>
			<dc:creator>Roma</dc:creator>
			<guid isPermaLink="false">6238@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;result the same as above
&#60;/p&#62;</description>
		</item>
		<item>
			<title>gbulmer on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6231</link>
			<pubDate>Thu, 08 Sep 2011 20:12:14 +0000</pubDate>
			<dc:creator>gbulmer</dc:creator>
			<guid isPermaLink="false">6231@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;Have you tried any other tests? It is helpful to try a few tests to  gather more evidence.&#60;/p&#62;
&#60;p&#62;For example, do you get the same result if you do:&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;lcd.setCursor(0,3); lcd.print(&#38;quot;Line4&#38;quot;);
lcd.setCursor(0,2); lcd.print(&#38;quot;Line3&#38;quot;);
lcd.setCursor(0,1); lcd.print(&#38;quot;Line2&#38;quot;);
lcd.setCursor(0,0); lcd.print(&#38;quot;Line1&#38;quot;);&#60;/code&#62;&#60;/pre&#62;
&#60;p&#62;or&#60;br /&#62;
&#60;pre&#62;&#60;code&#62;lcd.setCursor(0,0);  lcd.print(&#38;quot;L&#38;quot;); lcd.print(&#38;quot;i&#38;quot;); lcd.print(&#38;quot;n&#38;quot;); lcd.print(&#38;quot;e&#38;quot;); lcd.print(&#38;quot;1&#38;quot;);
lcd.setCursor(0,1); lcd.print(&#38;quot;L&#38;quot;); lcd.print(&#38;quot;i&#38;quot;); lcd.print(&#38;quot;n&#38;quot;); lcd.print(&#38;quot;e&#38;quot;); lcd.print(&#38;quot;2&#38;quot;);
lcd.setCursor(0,2);lcd.print(&#38;quot;L&#38;quot;); lcd.print(&#38;quot;i&#38;quot;); lcd.print(&#38;quot;n&#38;quot;); lcd.print(&#38;quot;e&#38;quot;);  lcd.print(&#38;quot;3&#38;quot;);
lcd.setCursor(0,3); lcd.print(&#38;quot;L&#38;quot;); lcd.print(&#38;quot;i&#38;quot;); lcd.print(&#38;quot;n&#38;quot;); lcd.print(&#38;quot;e&#38;quot;); lcd.print(&#38;quot;4&#38;quot;);&#60;/code&#62;&#60;/pre&#62;</description>
		</item>
		<item>
			<title>Roma on "Problem with WH1604B and LiquidCrystal"</title>
			<link>http://forums.leaflabs.com/topic.php?id=1023#post-6226</link>
			<pubDate>Thu, 08 Sep 2011 13:16:33 +0000</pubDate>
			<dc:creator>Roma</dc:creator>
			<guid isPermaLink="false">6226@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;I was try to use LiquidCrystal and WH1604B (16x4) with Maple Rev 5&#60;br /&#62;
This is my code:&#60;/p&#62;
&#60;p&#62;#include &#38;lt;LiquidCrystal.h&#38;gt;&#60;/p&#62;
&#60;p&#62;LiquidCrystal lcd(5,6,2,3,9,11);&#60;/p&#62;
&#60;p&#62;void setup()&#60;br /&#62;
{&#60;br /&#62;
  lcd.begin(16,4);&#60;br /&#62;
  lcd.clear();&#60;br /&#62;
  lcd.leftToRight();&#60;br /&#62;
  lcd.home();&#60;/p&#62;
&#60;p&#62;  lcd.setCursor(0,0);    lcd.print(&#34;Line1&#34;);&#60;br /&#62;
  lcd.setCursor(0,1);    lcd.print(&#34;Line2&#34;);&#60;br /&#62;
  lcd.setCursor(0,2);    lcd.print(&#34;Line3&#34;);&#60;br /&#62;
  lcd.setCursor(0,3);    lcd.print(&#34;Line4&#34;);&#60;/p&#62;
&#60;p&#62;}&#60;/p&#62;
&#60;p&#62;void loop() {}&#60;/p&#62;
&#60;p&#62;and result not good&#60;/p&#62;
&#60;p&#62;&#60;a href=&#34;http://meteo.pajero4x4.ru/wp-content/uploads/2011/09/08092011222.jpg&#34; rel=&#34;nofollow&#34;&#62;http://meteo.pajero4x4.ru/wp-content/uploads/2011/09/08092011222.jpg&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Why
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
