Gast
#199835
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;
}