<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/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/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/69444/twim-easydma-delay-between-bytes</link><description>Hi, I&amp;#39;m writing a library for the common Hitachi_HD44780 (LCD2004 etc) but need it to be non-blocking. I&amp;#39;ll open source it once done. I&amp;#39;m using EasyDMA to do the transfers but the aging HD44780 needs a 50us delay in-between commands. My idea so far is;</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 15 Dec 2020 23:02:45 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/69444/twim-easydma-delay-between-bytes" /><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285197?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 23:02:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d7625e18-3839-4527-a4f1-62754bd1f476</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;All working. :)&lt;br /&gt;&lt;br /&gt;A LCD 2004 (etc) driver is coming to NRF52 on github soon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285078?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:52:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:65c544dd-6b59-436f-9223-db88a73c85a6</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;Yup that&amp;#39;s got it! Right, cooking with gas now. Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285076?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:51:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e7754d8f-adb4-450a-a34c-6cd3bc239c94</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Yes!&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t need the interrupt you can disable it, the event will still function.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285075?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:49:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:75c1fd31-4bbd-42ad-bba9-bec2c59e434e</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;Oh, when EVENTS_COMPARE[X] fires it must be cleared in software for the interrupt, but for the PPI it&amp;#39;s a single pulse?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285073?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:47:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:683b0d39-187d-4580-b3cf-17f641f0c89f</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;TIMER4 in counter mode. TIMER3 for the spacing.&lt;br /&gt; &lt;br /&gt;The interrupt fires and continues to fire, I&amp;#39;m unable to shut it down.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Even when in the interrupt I do&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;  CFG_TIMER_LCD_SPACE-&amp;gt;TASKS_STOP = 1;
  CFG_TIMER_LCD_COUNTER-&amp;gt;TASKS_STOP = 1;
  CFG_TIMER_LCD_COUNTER-&amp;gt;TASKS_CLEAR = 1;
  CFG_TIMER_LCD_COUNTER-&amp;gt;CC[0] = 900;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The PPI should have already stopped TIMER3 and cleared TIMER4 but the above would ensure it. Weirdly the interrupt continues!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285062?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:30:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:07415a5e-663c-4df5-bb47-c9f7a21194cd</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Can you read out the registers of the PPI channel you&amp;#39;re using?&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Which timer instance are you using?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285055?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:26:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4ab409e-5cd9-4301-b9fb-7a02c75f6e26</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;Yupp, just done that and still no-go. What&amp;#39;s odd is the interrupt on the same compare is firing, so that side is good, it&amp;#39;s just not making it&amp;#39;s way through PPI.&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;NRF_PPI-&amp;gt;CH[CFG_PPI_LCD_CHANNEL_COUNTER_RESET].EEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_COUNTER-&amp;gt;EVENTS_COMPARE[0]; // wire timer compare
NRF_PPI-&amp;gt;CH[CFG_PPI_LCD_CHANNEL_COUNTER_RESET].TEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_SPACE-&amp;gt;TASKS_STOP;
NRF_PPI-&amp;gt;FORK[CFG_PPI_LCD_CHANNEL_COUNTER_RESET].TEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_SPACE-&amp;gt;TASKS_CLEAR;
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To confirm when in COUNTER mode there&amp;#39;s no means to stop the timer (TASK_START) doesn&amp;#39;t need to be set? This potentially means the compare is always active and if so I&amp;#39;&amp;#39;ll need to disable the interrupt (could be why it&amp;#39;s refiring).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285053?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:25:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0bb65f84-8dac-41e0-9b0d-5a71102d5f2c</guid><dc:creator>haakonsh</dc:creator><description>[quote user="snoopy20"] I&amp;#39;m wondering if by having a short on the compare (to stop and reset) that prevents the event reaching the PPI?[/quote]
&lt;p&gt;&amp;nbsp;Not that I&amp;#39;m aware of, you should still get a&amp;nbsp;COMPARE event event though you shorted it to the STOP and CLEAR tasks. You can try to disable one of the shorts and see if that changes anything.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285050?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:21:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a74b732b-1e03-4d47-abc2-48b753ca4935</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;Moving back, I have an issue that the PPI isn&amp;#39;t stopping the first timer. I&amp;#39;m wondering if by having a short on the compare (to stop and reset) that prevents the event reaching the PPI?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285044?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 12:18:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:78772801-8b2a-4aee-8101-3c7342e4d13d</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;The same has occurred with a SAMD project so seems to be a SEGGER issue, or setting I&amp;#39;m not aware of.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/285024?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 11:22:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:873074d2-4b87-4386-ade0-b199dd35f9a8</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Not sure if our licenses covers c++ for ses&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/284990?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 10:06:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:315aa1c8-c968-439b-ac35-14ef0aa4d8aa</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;It seems to be the default with segger embedded. I tried a fresh basic project with the same result.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/284928?ContentTypeID=1</link><pubDate>Tue, 15 Dec 2020 07:14:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:abfb5748-5986-445f-a88a-c2c487429074</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;Aah, I&amp;#39;m not that familiar with c++, but I&amp;#39;d venture to guess that your build system should support a c++ based main if configured properly. Maybe you need to modify the linker or something.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/284902?ContentTypeID=1</link><pubDate>Mon, 14 Dec 2020 23:24:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:988bb5b2-9bd6-4cfa-95dc-04e71ad47384</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;Finally figured it, if main.c is main.cpp no interrupt work!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/284900?ContentTypeID=1</link><pubDate>Mon, 14 Dec 2020 23:22:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e8fde5b7-95f1-4cd9-925d-c4c91e8bc670</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;I&amp;#39;ve determined that no interrupt handler is hit. I thought these were picked up by ses_startup_nrf52.c and can&amp;#39;t see any other reason why they&amp;#39;re being ignored.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/284820?ContentTypeID=1</link><pubDate>Mon, 14 Dec 2020 14:30:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:655cabec-d17f-465b-926d-d57906ca3c83</guid><dc:creator>snoopy20</dc:creator><description>&lt;p&gt;I have the approach sorted - two timers, three PPI channels and a TWIM.&lt;br /&gt;&lt;br /&gt;The problem and I&amp;#39;ve yet to crack it is as soon as the counter compare event is one and the interrupt fires the CPU appears to lock (I am not in any interrupt or loop).&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#define CFG_PIN_LCD_SDA 5
#define CFG_PIN_LCD_SCL 6
#define CFG_PIN_LCD_VDD 7

#define CFG_PPI_LCD_CHANNEL_TWIM_START 2
#define CFG_PPI_LCD_CHANNEL_COUNTER_TICK 3
#define CFG_PPI_LCD_CHANNEL_COUNTER_RESET 4
#define CFG_TIMER_LCD_SPACE NRF_TIMER3
#define CFG_TIMER_LCD_COUNTER NRF_TIMER4
#define CFG_TWIM_LCD_TX NRF_TWIM0&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Been over and over the config below. It looks perfect to my eyes.&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;  NRF_GPIO-&amp;gt;PIN_CNF[CFG_PIN_LCD_SCL] = I2C_PIN_INIT_CONF;
  NRF_GPIO-&amp;gt;PIN_CNF[CFG_PIN_LCD_SDA] = I2C_PIN_INIT_CONF;
  NRF_GPIO-&amp;gt;PIN_CNF[CFG_PIN_LCD_VDD] = ((GPIO_PIN_CNF_SENSE_Disabled &amp;lt;&amp;lt; GPIO_PIN_CNF_SENSE_Pos) | (GPIO_PIN_CNF_DRIVE_S0S1 &amp;lt;&amp;lt; GPIO_PIN_CNF_DRIVE_Pos) | (GPIO_PIN_CNF_INPUT_Disconnect &amp;lt;&amp;lt; GPIO_PIN_CNF_INPUT_Pos) | (GPIO_PIN_CNF_DIR_Output &amp;lt;&amp;lt; GPIO_PIN_CNF_DIR_Pos));
  NRF_GPIO-&amp;gt;OUTSET = 1 &amp;lt;&amp;lt; CFG_PIN_LCD_VDD;

  CFG_TIMER_LCD_SPACE-&amp;gt;PRESCALER = 0;
  CFG_TIMER_LCD_SPACE-&amp;gt;CC[0] = 1;
  CFG_TIMER_LCD_SPACE-&amp;gt;CC[1] = LCD_TICKS_BETWEEN_DATA - 50U;
  CFG_TIMER_LCD_SPACE-&amp;gt;CC[2] = LCD_TICKS_BETWEEN_DATA;
  CFG_TIMER_LCD_SPACE-&amp;gt;SHORTS = TIMER_SHORTS_COMPARE2_CLEAR_Enabled &amp;lt;&amp;lt; TIMER_SHORTS_COMPARE2_CLEAR_Pos;
  CFG_TIMER_LCD_COUNTER-&amp;gt;PRESCALER = 0;
  CFG_TIMER_LCD_COUNTER-&amp;gt;MODE = TIMER_MODE_MODE_LowPowerCounter &amp;lt;&amp;lt; TIMER_MODE_MODE_Pos;
  CFG_TIMER_LCD_COUNTER-&amp;gt;SHORTS = TIMER_SHORTS_COMPARE0_CLEAR_Enabled &amp;lt;&amp;lt; TIMER_SHORTS_COMPARE0_CLEAR_Pos;
  CFG_TIMER_LCD_COUNTER-&amp;gt;INTENSET = TIMER_INTENSET_COMPARE0_Enabled &amp;lt;&amp;lt; TIMER_INTENSET_COMPARE0_Pos;
  CFG_TIMER_LCD_COUNTER-&amp;gt;TASKS_START = 1;
  
  CFG_TWIM_LCD_TX-&amp;gt;ADDRESS = 0x3f;
  CFG_TWIM_LCD_TX-&amp;gt;FREQUENCY = TWIM_FREQUENCY_FREQUENCY_K100 &amp;lt;&amp;lt; TWIM_FREQUENCY_FREQUENCY_Pos;
  CFG_TWIM_LCD_TX-&amp;gt;PSEL.SCL = (TWIM_PSEL_SCL_CONNECT_Connected &amp;lt;&amp;lt; TWIM_PSEL_SCL_CONNECT_Pos) | CFG_PIN_LCD_SCL;
  CFG_TWIM_LCD_TX-&amp;gt;PSEL.SDA = (TWIM_PSEL_SDA_CONNECT_Connected &amp;lt;&amp;lt; TWIM_PSEL_SDA_CONNECT_Pos) | CFG_PIN_LCD_SDA;
  CFG_TWIM_LCD_TX-&amp;gt;SHORTS = TWIM_SHORTS_LASTTX_STOP_Enabled &amp;lt;&amp;lt; TWIM_SHORTS_LASTTX_STOP_Pos;
  CFG_TWIM_LCD_TX-&amp;gt;TXD.LIST = TWIM_TXD_LIST_LIST_ArrayList &amp;lt;&amp;lt; TWIM_TXD_LIST_LIST_Pos;
  CFG_TWIM_LCD_TX-&amp;gt;TXD.MAXCNT = LCD_PAYLOAD_CMD_DATA;
  CFG_TWIM_LCD_TX-&amp;gt;ENABLE = TWIM_ENABLE_ENABLE_Enabled &amp;lt;&amp;lt; TWIM_ENABLE_ENABLE_Pos;

  //NRF_PPI-&amp;gt;CH[CFG_PPI_LCD_CHANNEL_TWIM_START].EEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_SPACE-&amp;gt;EVENTS_COMPARE[0]; // wire timer compare
  //NRF_PPI-&amp;gt;CH[CFG_PPI_LCD_CHANNEL_TWIM_START].TEP = (uint32_t) &amp;amp;CFG_TWIM_LCD_TX-&amp;gt;TASKS_STARTTX; 
  NRF_PPI-&amp;gt;CH[CFG_PPI_LCD_CHANNEL_COUNTER_TICK].EEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_SPACE-&amp;gt;EVENTS_COMPARE[1]; // wire timer compare
  NRF_PPI-&amp;gt;CH[CFG_PPI_LCD_CHANNEL_COUNTER_TICK].TEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_COUNTER-&amp;gt;TASKS_COUNT; 
  NRF_PPI-&amp;gt;CH[CFG_PPI_LCD_CHANNEL_COUNTER_RESET].EEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_COUNTER-&amp;gt;EVENTS_COMPARE[0]; // wire timer compare
  NRF_PPI-&amp;gt;CH[CFG_PPI_LCD_CHANNEL_COUNTER_RESET].TEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_SPACE-&amp;gt;TASKS_STOP;
  NRF_PPI-&amp;gt;FORK[CFG_PPI_LCD_CHANNEL_COUNTER_RESET].TEP = (uint32_t) &amp;amp;CFG_TIMER_LCD_SPACE-&amp;gt;TASKS_CLEAR;

  NRF_PPI-&amp;gt;CHENSET = 1 &amp;lt;&amp;lt; CFG_PPI_LCD_CHANNEL_TWIM_START | 1 &amp;lt;&amp;lt; CFG_PPI_LCD_CHANNEL_COUNTER_TICK | 1 &amp;lt;&amp;lt; CFG_PPI_LCD_CHANNEL_COUNTER_RESET;  // enable ppi channel

  NVIC_EnableIRQ(TIMER4_IRQn);

   __enable_irq();
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;printf is working, stuck in the interrupt since can&amp;#39;&amp;#39;t break inside of it. It doesn&amp;#39;t hit.&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;void TIMER4_IRQHandler (void) {

  printf(&amp;quot;hurrah&amp;quot;, 0);
  dmaBuffer.transferBuffer-&amp;gt;size = 0;
  dmaBuffer.transferBuffer = getNextBuffer(dmaBuffer.transferBuffer);
  dmaBuffer.writing = 0;
  if (!dmaBuffer.locked &amp;amp;&amp;amp; dmaBuffer.transferBuffer-&amp;gt;size) {
    __startTransfer();
  }
}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TWIM EasyDMA Delay Between Bytes</title><link>https://devzone.nordicsemi.com/thread/284809?ContentTypeID=1</link><pubDate>Mon, 14 Dec 2020 14:05:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aaf7dd09-ae08-4428-b0c3-f4448314876f</guid><dc:creator>haakonsh</dc:creator><description>[quote user=""]My question then is around EasyDMA List mode. Can I clarify that what it&amp;#39;s doing is adding MAXCNT to the PTR object after each send?&lt;br /&gt;&lt;br /&gt;In other words if I set MAXCNT = 1 and use list mode I should get the spaces inbetween the bytes without needing to interrupt to PTR++?[/quote]
&lt;p&gt;&amp;nbsp;Yes, but I believe each byte will be a new transfer, so a new address+R/W-bit&amp;nbsp;and 1 byte data for each iteration, but I&amp;#39;m not quite sure. I guess you&amp;#39;ll have to try and see if it works.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>