Graphic LCD (KS0108) library now available

I am very happy you got it going and am surprised that your LCD needs such a long delay. Adding 26 nops makes the delay around 2 microseconds, the spec sheet says it that 450ns should be sufficient.

Anyway, I wonder if you can test some code that I could add to the library that would make it easier to support panels that need a long delay.

Could you comment out all the nops that you added and instead replace the code in the Enable function in ks0108.cpp with the following :

 #define XTREME_ENABLE_DELAY  4

__inline__ void ks0108::Enable(void) {  
    fastWriteHigh(EN);      // EN high level width: min. 450ns
      delay450ns();
      fastWriteLow(EN);
#ifdef XTREME_ENABLE_DELAY
      for(volatile uint8_t i=0; i< XTREME_ENABLE_DELAY; i++);  
#else
      delay450ns();
#endif
}

You may need to increase the value of XTREME__ENABLE_DELAY from 4 to 5 or perhaps even 6, but if a value of 8 isnt' enough then I will suggest a slightly different place to add the delay.

Keep me posted.