Problem s displayom - chyba po volani instrukcii

Panda38:
E je nějaké makro - definice bitu SFR ( nebo jak se u picu jmenují) registru - buď PORT, nebo LAT - (to ví jen autor) - něco jako:

#define E	PORTCbits.RC3

to je v C18 - ten XC8 neznám

nevím jak by se toto dalo definovat jako volatile

Navíc v takovém Codevisionu pro AVRka bych si v tomto případě s volatile moc nepomohl - tam to funguje tak, že prefix volatile jenom řekne překladači, aby nepoužil pro proměnnou jeden ze 32 pracovních registrů - aby nedošlo k jeho přepsání během přerušení.Obsahuje ale direktivy, opt+ a opt-, kterými vyloučím z optimalizace části kódu, které potřebuju. Přiznám, že u piců jsem to až tak detailně zatím nezkoumal.C18 nic takového neumí - snad jen vypnout optimalizaci úplně - proto ta nutnost vkládat do “nelogické” posloupnosti příkazů alespoň ten nop .

Stejně bych ale viděl zádrhel v tom, že pokud by měl “logicky” propojené
piny portu a LCD nějak takto:

PB0(LCD1) - D4
PB1(LCD2) - D5
PB2(LCD3) - D6
PB3(LCD4) - D7

tak bude posílat ta jeho funkce ten půlbyte zrcadlově obrácený.