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