I am trying to use 128x64 display. It works only if I remove and reinsert rs,rw,en,cs1 and cs2 frequently. Once its ON, it will work on all resets and no problem if I insert another program. If I disconnect the USB and insert it after 10-20 seconds I again need to insert and reinsert the pins.
Current program is shown below
const int rs = 9, rw = 10, en = 11, cs1 = 12, cs2 = 13,rst = 8;
const int d0 = 37, d1 = 36, d2 = 35, d3 = 34;
const int d4 = 33, d5 = 32, d6 = 31, d7 = 30;
const int switch_key = 2, switch_push = 3, music = 4;
void setup()
{
pinMode(rs, OUTPUT);
pinMode(rw, OUTPUT);
pinMode(en, OUTPUT);
pinMode(cs1, OUTPUT);
pinMode(cs2, OUTPUT);
pinMode(rst, OUTPUT);
pinMode(d0, OUTPUT);
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(d5, OUTPUT);
pinMode(d6, OUTPUT);
pinMode(d7, OUTPUT);
pinMode(switch_push, INPUT);
pinMode(switch_key, INPUT);
pinMode(music, OUTPUT);
Serial.begin(115200);
Serial.print("began");
}
void loop()
{
byte i=0x00,j=0x40,k=0xF8;
int c_time,flag;
digitalWrite(rst,LOW);
digitalWrite(cs2,HIGH);
digitalWrite(cs1,HIGH);
digitalWrite(rst,HIGH);
digitalWrite(cs2,LOW);
digitalWrite(cs1,LOW);
lcdcmd(0x3F);
lcdcmd(0x3F);
}
void lcdcmd(char cmd)
{
PORTC = cmd;
digitalWrite(rw,LOW);
digitalWrite(rs,LOW);
digitalWrite(en,LOW);
delayMicroseconds(300);
digitalWrite(en,HIGH);
delayMicroseconds(300);
digitalWrite(en,LOW);
}