<?xml version="1.0" encoding="windows-1252"?><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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: ATTiny2313 Controlling a HD44780 LCD via AVR-GCC</title>
	<atom:link href="http://www.SWHarden.com/blog/2009-05-17-attiny2313-controlling-a-hd44780-lcd-via-avr-gcc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.SWHarden.com/blog/2009-05-17-attiny2313-controlling-a-hd44780-lcd-via-avr-gcc/</link>
	<description>A collection of thoughts in technological degradation</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:12:28 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Chris</title>
		<link>http://www.SWHarden.com/blog/2009-05-17-attiny2313-controlling-a-hd44780-lcd-via-avr-gcc/comment-page-1/#comment-11156</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Sat, 06 Nov 2010 23:04:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1058#comment-11156</guid>
		<description>Works great except autoscrolling and wrapping seem to be broken on 4x20 displays. If I set LCD_DISP_LENGTH to 19, it works though I lose the last character. Trying to figure out how to fix that...</description>
		<content:encoded><![CDATA[<p>Works great except autoscrolling and wrapping seem to be broken on 4&#215;20 displays. If I set LCD_DISP_LENGTH to 19, it works though I lose the last character. Trying to figure out how to fix that&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Victory</title>
		<link>http://www.SWHarden.com/blog/2009-05-17-attiny2313-controlling-a-hd44780-lcd-via-avr-gcc/comment-page-1/#comment-10884</link>
		<dc:creator>Victory</dc:creator>
		<pubDate>Fri, 22 Oct 2010 12:06:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1058#comment-10884</guid>
		<description>Hello!

In the &quot;lcd.c&quot; file have to change &quot;PRG_RDB()&quot; to &quot;pgm_read_byte()&quot;, and only &quot;lcd.h&quot; has to be included in the main.c. I corrected it, and now working :)!

Thansk the example, great work!</description>
		<content:encoded><![CDATA[<p>Hello!</p>
<p>In the &#8220;lcd.c&#8221; file have to change &#8220;PRG_RDB()&#8221; to &#8220;pgm_read_byte()&#8221;, and only &#8220;lcd.h&#8221; has to be included in the main.c. I corrected it, and now working <img src='http://www.SWHarden.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> !</p>
<p>Thansk the example, great work!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chetan</title>
		<link>http://www.SWHarden.com/blog/2009-05-17-attiny2313-controlling-a-hd44780-lcd-via-avr-gcc/comment-page-1/#comment-10472</link>
		<dc:creator>chetan</dc:creator>
		<pubDate>Tue, 31 Aug 2010 10:23:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1058#comment-10472</guid>
		<description>Hi i tried using lcd.h an lcd.c an execute the progran but i got errors.im trying to communicate ATtiny with icd 16*2 from many days...here is my code.it displays from a to z.i have grounde my lcd contrast pin.is that ok ?? and i have connected pin DO of lcd to PORTB0 of attiny an pin d1 of lcd to PORTB1 of attiny and so on....please help me ,its been many days im trying this

#include 
#define F_CPU 1000000UL
#include 
#include 
#define LCD_data PORTB
#define LCD_D7 PORTB // to check the busy state
#define LCD_rs PORTD //portd pin 5 is used to select command or data register
#define LCD_rw PORTD //portd pin 4 is used to indicate read write
#define LCD_en PORTD /portd pin 6 is used to enablehigh to low signal
#define HIGH LCD_en &#124; (0x01 &lt;&lt; 6)
#define LOW LCD_en &amp; ~(0x01 &lt;&lt; 6)


void LCD_busy(){

LCD_D7 = LCD_D7 &#124; (0x01 &lt;&lt; 7); //Make D7th bit of LCD as i/p
LCD_en = LCD_en &#124; (0x01 &lt;&lt; 6); //Make port pin as o/p
LCD_rs = LCD_rs &amp; ~(0x01 &lt;&lt; 4); //Selected command register
LCD_rw = LCD_rw &#124; (0x01 &lt;&lt; 5); //We are reading
while(LCD_D7 &amp; (0x01 &lt;L
_delay_ms(1);
LCD_en = HIGH;
}
}


void LCD_command(unsigned char var){

LCD_data = var; //Function set: 2 Line, 8-bit, 5x7 dots
LCD_rs = LCD_rs &amp; ~(0x01 &lt;&lt; 4); //Selected command register
LCD_rw = LCD_rw &amp; ~(0x01 &lt;L
_delay_ms(1);
LCD_en = LOW;
LCD_busy(); //Wait for LCD to process the command
}
// Using the above function is really simple
// var will carry the command for LCD
// e.g.
//
// LCD_command(0x01); which is used to clear lcd


void LCD_init()
{
LCD_command(0x38); //Function set: 2 Line, 8-bit, 5x7 dots

LCD_command(0x0F); //Display on, Curson blinking command

LCD_command(0x01); //Clear LCD

LCD_command(0x06); //Entry mode, auto increment with no shift
}

void LCD_clear() {
LCD_command(0x01);
LCD_busy();
}


void LCD_senddata(unsigned char var)
{
LCD_data = var; //Function set: 2 Line, 8-bit, 5x7 dots
LCD_rs = LCD_rs &#124; (0x01 &lt;&lt; 4); //Selected data register
LCD_rw = LCD_rw &amp; ~(0x01 &lt;L
_delay_ms(1);
LCD_en = LOW;
LCD_busy(); //Wait for LCD to process the command
}


// Using the above function is really simple
// we should pass the character to display as argument to function
// e.g.
// LCD_senddata(&#039;A&#039;);


main(){
DDRB = 0xff;
DDRD = 0xE0;
LCD_init();
unsigned char ch = &#039;A&#039;;
while(1) {
if(ch == &#039;Z&#039;) {
ch = &#039;A&#039;;
LCD_clear();
}
LCD_senddata(&#039;ch&#039;);
ch++;
_delay_ms(1000);
}
}</description>
		<content:encoded><![CDATA[<p>Hi i tried using lcd.h an lcd.c an execute the progran but i got errors.im trying to communicate ATtiny with icd 16*2 from many days&#8230;here is my code.it displays from a to z.i have grounde my lcd contrast pin.is that ok ?? and i have connected pin DO of lcd to PORTB0 of attiny an pin d1 of lcd to PORTB1 of attiny and so on&#8230;.please help me ,its been many days im trying this</p>
<p>#include<br />
#define F_CPU 1000000UL<br />
#include<br />
#include<br />
#define LCD_data PORTB<br />
#define LCD_D7 PORTB // to check the busy state<br />
#define LCD_rs PORTD //portd pin 5 is used to select command or data register<br />
#define LCD_rw PORTD //portd pin 4 is used to indicate read write<br />
#define LCD_en PORTD /portd pin 6 is used to enablehigh to low signal<br />
#define HIGH LCD_en | (0&#215;01 &lt;&lt; 6)<br />
#define LOW LCD_en &amp; ~(0&#215;01 &lt;&lt; 6)</p>
<p>void LCD_busy(){</p>
<p>LCD_D7 = LCD_D7 | (0&#215;01 &lt;&lt; 7); //Make D7th bit of LCD as i/p<br />
LCD_en = LCD_en | (0&#215;01 &lt;&lt; 6); //Make port pin as o/p<br />
LCD_rs = LCD_rs &amp; ~(0&#215;01 &lt;&lt; 4); //Selected command register<br />
LCD_rw = LCD_rw | (0&#215;01 &lt;&lt; 5); //We are reading<br />
while(LCD_D7 &amp; (0&#215;01 &lt;L<br />
_delay_ms(1);<br />
LCD_en = HIGH;<br />
}<br />
}</p>
<p>void LCD_command(unsigned char var){</p>
<p>LCD_data = var; //Function set: 2 Line, 8-bit, 5&#215;7 dots<br />
LCD_rs = LCD_rs &amp; ~(0&#215;01 &lt;&lt; 4); //Selected command register<br />
LCD_rw = LCD_rw &amp; ~(0&#215;01 &lt;L<br />
_delay_ms(1);<br />
LCD_en = LOW;<br />
LCD_busy(); //Wait for LCD to process the command<br />
}<br />
// Using the above function is really simple<br />
// var will carry the command for LCD<br />
// e.g.<br />
//<br />
// LCD_command(0&#215;01); which is used to clear lcd</p>
<p>void LCD_init()<br />
{<br />
LCD_command(0&#215;38); //Function set: 2 Line, 8-bit, 5&#215;7 dots</p>
<p>LCD_command(0&#215;0F); //Display on, Curson blinking command</p>
<p>LCD_command(0&#215;01); //Clear LCD</p>
<p>LCD_command(0&#215;06); //Entry mode, auto increment with no shift<br />
}</p>
<p>void LCD_clear() {<br />
LCD_command(0&#215;01);<br />
LCD_busy();<br />
}</p>
<p>void LCD_senddata(unsigned char var)<br />
{<br />
LCD_data = var; //Function set: 2 Line, 8-bit, 5&#215;7 dots<br />
LCD_rs = LCD_rs | (0&#215;01 &lt;&lt; 4); //Selected data register<br />
LCD_rw = LCD_rw &amp; ~(0&#215;01 &lt;L<br />
_delay_ms(1);<br />
LCD_en = LOW;<br />
LCD_busy(); //Wait for LCD to process the command<br />
}</p>
<p>// Using the above function is really simple<br />
// we should pass the character to display as argument to function<br />
// e.g.<br />
// LCD_senddata(&#8217;A');</p>
<p>main(){<br />
DDRB = 0xff;<br />
DDRD = 0xE0;<br />
LCD_init();<br />
unsigned char ch = &#8216;A&#8217;;<br />
while(1) {<br />
if(ch == &#8216;Z&#8217;) {<br />
ch = &#8216;A&#8217;;<br />
LCD_clear();<br />
}<br />
LCD_senddata(&#8217;ch&#8217;);<br />
ch++;<br />
_delay_ms(1000);<br />
}<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frank</title>
		<link>http://www.SWHarden.com/blog/2009-05-17-attiny2313-controlling-a-hd44780-lcd-via-avr-gcc/comment-page-1/#comment-9752</link>
		<dc:creator>Frank</dc:creator>
		<pubDate>Sun, 23 May 2010 18:43:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1058#comment-9752</guid>
		<description>Hi,
I can&#039;t find the file lcd.c . The one in the Martin Thomas page doesn&#039;t work.
Can you please send me a zip or whatever with this file please ?

Many thanks !
Frank</description>
		<content:encoded><![CDATA[<p>Hi,<br />
I can&#8217;t find the file lcd.c . The one in the Martin Thomas page doesn&#8217;t work.<br />
Can you please send me a zip or whatever with this file please ?</p>
<p>Many thanks !<br />
Frank</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ümit</title>
		<link>http://www.SWHarden.com/blog/2009-05-17-attiny2313-controlling-a-hd44780-lcd-via-avr-gcc/comment-page-1/#comment-9751</link>
		<dc:creator>Ümit</dc:creator>
		<pubDate>Sun, 23 May 2010 16:23:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.SWHarden.com/blog/?p=1058#comment-9751</guid>
		<description>Hi, 

I have this tested it on my ATtiny2313 but it does not work.

Can you send me the files please?

Sincerely, Ümit.</description>
		<content:encoded><![CDATA[<p>Hi, </p>
<p>I have this tested it on my ATtiny2313 but it does not work.</p>
<p>Can you send me the files please?</p>
<p>Sincerely, Ümit.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

