Problem s displayom - chyba po volani instrukcii

samozřejmě že by to tak šlo - dokonce by to bylo mnohem rychlejší - myslím tím princip maskování - toto konkrétně asi funkční nebude

tvoje

LATD &= 0xf0; LATD |= (unsigned char)(sendBites & 0x0f);

budou nějaké 3 - 4 asm instrukce, zatímco jeho

LCD1 = 1 & (sendBites >> 7); LCD2 = 1 & (sendBites >> 6); LCD3 = 1 & (sendBites >> 5); LCD4 = 1 & (sendBites >> 4);

je minimálně 26 instrukcí ale spíš víc

teď budu trochu OT, ale už jsem viděl, že hlavně u větších datových typů (long atd) používá autor místo bitového posunu třeba(1>>15) radši dělení
/32768 - ale nezkoumal jsem jaký to má efekt