Gast
#199839
Hallo! Ich habe mir einen Borland Builder Code für die Ansteuerung eines Displays T6963 via LPT heruntergeladen. Ich verstehe diesen Ausdruck nicht. "DLPortIO1->Port[BASE + 0x402] = Tmp;" (BASE = 0x378). Warum addiert er 0x402 zu der BASE Adresse? void __fastcall TForm1::WaitDisplayReady(void) // lukee näytön status byten ja varmistaa, // että näyttö on valmiina ennen kirjoitusta // ei sisällä vielä mitään tarkistusta sen varalta, // että status byten luku ei onnistu, joten // ohjelma on melko helppo saada jumiin // Tässä kun on vähän aikaa tätä käytetty, niin // eipä tämä olekaan mennyt jumiin kuin silloin // jos koneessa ei ole LCD näyttöä ollenkaan kiinni. // Jokin tarkistus pitäisi kuitenkin tehdä. { int Tmp; Tmp = DLPortIO1->Port[BASE + 0x402]; Tmp = Tmp & 0x1F; Tmp = Tmp | 0x20; DLPortIO1->Port[BASE + 0x402] = Tmp; do{ DLPortIO1->Port[BASE + 2] = 0x20 + 4 + 2; //In, CD=1, CS=0, Wr=1 DLPortIO1->Port[BASE + 2] = 0x20 + 4 + 2 + 8; //In, CD=1, CS=0, Wr=1, Rd=0 Tmp = DLPortIO1->Port[BASE]; DLPortIO1->Port[BASE + 2] = 0x20 + 4 + 2; //In, CD=1, CS=0, Wr=1 }while ((Tmp & 3) != 3 ); DLPortIO1->Port[BASE + 2] = 0; }