Problém se zobrazením uživatelských znaků LCD

Mám takovou záhadu:
Konečně jsem se dostal k tomu, abych si udělal češtinu pro LCD. Pohrál jsem si s vytvořením 8mi “háčko-čárkových” znaků napsal rutinku pro zápis znaků do LCD a těšil se že už nebudu psát hlášky displeje SMSkovštinou. Celé to fungovalo na první pokus ale jen do doby, než jsem odpojil napájení. Po opětovném připojení se některé znaky nenačetly z MCU do LCD správně - buď jim nějaký ten bod chyběl, nebo naopak přebýval, nebo se zobrazovaly úplné paskvily. A to se ještě k tomu jednalo po každém odpojení o jiné znaky. Nějaká chybička v programu - řekl jsem si , ale po resetu za provozu ( 0 na RST pin) vše fungovalo jak má - znaky se zobrazovaly bezchybně dokud jsem ovšem nevypl napájení. Měl jsem možnost vyzkoušet tři různé displeje od různých výrobců a všechny se chovaly stejně.
Postup při inicializaci:
1)inicializace portů
2)inicializace lcd
3)zápis uživatelských znaků
4)zobrazení znaků

Zkus dát displeji víc času po resetu. Můžeš mít pomalejší náběh napájení a stane se, že mcu skrze POR už jede, ale pro disp. ještě není napájení dostatečný.
Vypadá to, že než se po zapnutí vzpamatuje, tak už do něj tlačíš data. Když jsi resetoval mcu, disp. už byl dávno nastartovanej, takže když se mcu probral ze soft resetu, vše už šlapalo.

zkus i ten displej resetovat sw, myslím, že to jde. Jinak já nevím jak ty, ale 8 znaků je docela málo :smiley: já to řešil že jsem to přepisoval před zápisem textu. Napsal by jsi mi jaké ty znaky jsi tam narval ?

to sice je , ale displej jich víc neumí proto si nadefinuju vždy těch 8, které budu nejvíc používat,
definice znaků vypadá asi takto:

static char flash znaky[8,8] = {
{0x0A,0x04,0x0E,0x11,0x1F,0x10,0x0E,0x00}, /* znak ě /
{0x02,0x04,0x0E,0x11,0x11,0x11,0x0E,0x00}, /
znak ó /
{0x0A,0x04,0x0E,0x10,0x10,0x11,0x0E,0x00}, /
znak č /
{0x0A,0x04,0x16,0x19,0x10,0x10,0x10,0x00}, /
znak ř /
{0x02,0x04,0x0E,0x11,0x1F,0x10,0x0E,0x00}, /
znak é /
{0x02,0x04,0x11,0x11,0x0F,0x01,0x0E,0x00}, /
znak ý /
{0x02,0x04,0x0E,0x01,0x0F,0x11,0x0F,0x00}, /
znak á /
{0x02,0x04,0x0C,0x04,0x04,0x04,0x0E,0x00} /
znak í */
};
šikovný prográmek na tvorbu znaků je na :Download

ale i s tužkou a čtverečkovaným papírem je to záležitost na pár minut, stačí jen vědět,že znak na disp. je vlastně 8 bytů pod sebou a zobrazované body jsou jedničky v dolních 5ti bitech.