Verständnisproblem mit Sourcecode

Gast #199835
Lesenswert?

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;
}
Angehängte Dateien:
Gast #199836
Lesenswert?

Das steht doch da:

  "// 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ä."


Spaß beiseite.
Das könnte mit EPP/ECP-Betriebsarten zu tun haben; hier gabs vor
einigen Tagen einen Thread, in dem jemand eine ausführliche
englischsprachige Dokumentation postete:

http://www.mikrocontroller.net/forum/read-8-150864.html#152778
- ja, ich hab' recht:

(Zitat aus obigem Link)

Base + 401h Configuration Register B (Configuration Mode) Read/Write
Base + 402h Extended Control Register (Used by all modes) Read/Write

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren