viki píše:Tu pauzu tam mám proto že to někdy nestíhalo a některé znaky se mi nezobrazily. Hlavně po tom mazání, už přesně nevím.
Ano, instrukce Display Clear je oproti ostatním dlouhá, ale ty ji ani nepoužíváš (Display Clear je kód 0x01, ty máš to čekání za 0x06 což je Entry mode set a ta trvá krátce, viz
datasheet, str. 23, tabulka 3). Jestli to někdy nezobrazuje nějaké znaky, tak problém bude jinde.
viki píše:
Jinak tu šarádu tam mám proto že jsem to na typ int uměl převést pouze z hex a ten potřeboval taky mít typ int.
Programátorům se z toho asi krouti pejzy ala já nic lepšího nevymyslel a tohle fugovalo
Spíš je to mate, programátor začne koumat, co za spešl trik to autor použil
Ty sis totiž vzal jedno písmeno z řetězce (pomocí konstrukce
for pismeno in slovo) a pak sis z toho pismene udělal číslo přiřazením
cislo=ord(pismeno) (+128 ale to je nezajímavé). Výrazem
int(hex(int(cislo))) jsi převedl
cislo na celé číslo (ten
int vpravo), to se ale nic nezměnilo, protože celé číslo už to bylo. Pak jsi to tím
hex převedl na řetězec ve tvaru '0xněco' (viz
popis funkce hex) a pak jsi to zase převedl na celé číslo (ten
int vlevo, viz
popis funkce int). Čili nakonec jsi dostal zase celé číslo, jako jsi měl na začátku, akorát to mezitím chvilku byl řetězec obsahující hexadecimální záznam toho čísla. Takže to fungovalo, ale úplně stejně by to mělo fungovat, i kdybys tam místo
int(hex(int(cislo))) napsal jen
cislo. Leda pokud by
cislo nebylo celé číslo, tak by stačilo napsat
int(cislo) a to by z obsahu té proměnné
cislo už celé číslo vyrobilo (tedy pokud by to šlo, samozřejmě, nicméně ani to v tomhle případě není potřeba, protože tím přiřazením na začátku jsi ze znaku udělal číslo).