• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

LCD Code Problems

Not open for further replies.


New Member
I'm using an AVR ATmega644 to control a SparkFun LCD-00710. However, the code I downloaded from the internet (AVR to 128x64 Graphics LCD Interface) seems to be not working. That is, when I program the AVR and hook it up to the LCD, nothing happens.

I've narrowed down the problem. Using a logic analyzer, I realized that my ENABLE signal is not being pulsed (I believe it has to go from 1 to 0 for the instruction to be executed). In the code that I downloaded, it has these two lines:

#define LCD_E_HIGH (PORTD |= (1<<5))
#define LCD_E_LOW (PORTD &= ~(1<<5))

Then, to set ENABLE high or low they simple just use


Does anyone see a problem with these? For some reason they are not triggering the enable. Or can someone explain what the first two instructions do?

Thanks again!


Well-Known Member
Ugh. The first one says to OR portD with 1 shifted to 10000, the second says to AND it with the complement of 1 shifted to 10000.

This looks way too complicated for a #define compiler instruction. Assign LCD_E_HIGH and LCD_E_LOW to macros that do direct bit manipulation or bit masks.
Last edited:
Not open for further replies.

Latest threads

EE World Online Articles