LCD i 4-bitars interface mode, irriterande
Postat: 24 mars 2007, 09:38:21
Har lekt några dagar med en 2x16 teckens LCD, styrd från en MCU. LCDn heter YJ-162A och har en KS0066U controller. 44780 kompatibel antar jag. Den fungerar fint. Jag kan skriva text både i 8 och 4 bitars interface mode. Jag tänkte köra den i 4-bitars interface mode via ett skiftregister för att spara på I/O pinnarna på MCUn.
Från power-up är LCDn i 8-bitrs mode och man börjar initieringen med att sätta den i 4-bitars mode. Det här fungerar fint det också. Vad som irriterar mig är att när jag resettar MCUn nästa gång, vilket ju händer ganska ofta när jag debuggar koden i MCUn, utan att ta bort strömmen till LCDn, då är ju LCDn redan i 4-bitars mode och den nya initieriengen går åt skogen. Vad som händer är att initieringskoderna misstolkas så att LCDn bara använder 1 textrad.
Är det här ett känt fenomen? Finns det nåt sätt att komma runt det? Dvs oberoende av om LCD redan är i 8 eller 4 bitars mode, få initieringen korrekt. Och ja, jag är för lat för att knäppa av strömmen till LCDn för varje reset.
Från power-up är LCDn i 8-bitrs mode och man börjar initieringen med att sätta den i 4-bitars mode. Det här fungerar fint det också. Vad som irriterar mig är att när jag resettar MCUn nästa gång, vilket ju händer ganska ofta när jag debuggar koden i MCUn, utan att ta bort strömmen till LCDn, då är ju LCDn redan i 4-bitars mode och den nya initieriengen går åt skogen. Vad som händer är att initieringskoderna misstolkas så att LCDn bara använder 1 textrad.
Är det här ett känt fenomen? Finns det nåt sätt att komma runt det? Dvs oberoende av om LCD redan är i 8 eller 4 bitars mode, få initieringen korrekt. Och ja, jag är för lat för att knäppa av strömmen till LCDn för varje reset.