Ergebnis 1 bis 4 von 4

Thema: Parallelport

  1. #1
    Member
    Registriert seit
    Jul 2001
    Beiträge
    367
    Renommee
    10

    Parallelport

    Hallo Jungs!

    Ich hab da ein kleines Problem. Ich würde gerne meinen PC als "Schaltzentrale" verwenden und das ganze eben über den Parallelport steuern.

    Dazu müsste ich wissen, 1. wie man den Parallelport anspricht unter C

    und 2. wie man dem computer sagt, dass er z.b. pin 10 unter strom setzen soll oder nicht.

    Ich bin dankbar für alle Antworten.
    Sorgt für Aufklärung! Against TCPA

  2. #2
    Moderator
    Registriert seit
    Jan 2001
    Beiträge
    1.253
    Renommee
    421
    PIN10 -> ACK - Bit vom Statusregister -> Nix ändern, sondern lesen :)
    Die Datenbits sind PIN 2 bis DIN9

    Code:
     int parall_output(char zeichen)
         {
          int i, code;
          for ( i = 0; i < TIME_COUNT; i++)       /* warten, bis Drucker nicht mehr busy ist  */ 
              {
              code = inp(0x379);                  /* Statusregister lesen */
              if ((code & 0x80) == 0x80) break;   /* prüfen, ob BSY*-Bit gesetzt */ 
              }
         if ( i == TIMEOUT_COUNT) return(1);      /* BSY-Zeitüberschreitungsfehler -> Fehlercode 1 */
         outp(0x37A, (int) zeichen);              /* Datenregister laden */
         code = inp(0x37A);                       /* Steurregister lesen */
         code = code | 0x01;                      /* STB-Bit setzen */
         outp(0x37A, code;)                       /* Strobe high */
         for (i = 0; i < STROBE_WAIT);            /* etwas warten */
         code = inp(0x37A);                       /* Steuerregister lesen */
         code = code & 0xFE;                      /* STB-Bit löschen */
         outp(0x37A, code);                       /* Strobe low, Daten werden übergeben */
         for (i = 0; i < TIMEOUT_COUNT; i++)
            {
            code = inp(0x379);                    /* Statusregister lesen */
            if ((code & 0x40) == 0x00) break;     /* Prüfen, ob ACK-Bit gelöscht)
            }
        if (i == TIMEOUT_COUNT) return (2);       /* ACK-Zeitüberschreitungsfehler -> Fehlercode 2*/ 
        return (0);                               /* Supi!!! */ 
        }
    Wir denken nur, wenn wir mit einem Problem konfrontiert werden. John Dewey

  3. #3
    Member
    Registriert seit
    Jul 2001
    Beiträge
    367
    Renommee
    10
    Danke, aber das sagt mir jetzt eigentlich (noch) nicht so viel.
    Könnte das vielleicht jemand mal verallgemeinern?
    Sorgt für Aufklärung! Against TCPA

  4. #4
    Moderator
    Registriert seit
    Jan 2001
    Beiträge
    1.253
    Renommee
    421
    Du hast ein Function womit du die Pins 2 bis Pin9 über ein Char setzen bzw. zurücksetzen kannst. Wo ist den jetzt das Problem? Den jeweiligen PIN den du setzen bzw. zurücksetzen willst muss du halt das Char mit einem exklusives Oder mit dem jeweiligen Bit verknüpfen.
    Ich kann dir das jetzt auch in Asmcode ( wegen http://www.buhaboard.net/bubo/showth...threadid=23845 )übersetzen, aber ich glaub davon wirst du auch nicht glücklicher.
    Wir denken nur, wenn wir mit einem Problem konfrontiert werden. John Dewey

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Virtuellen ParallelPort
    Von Movergan im Forum Windows
    Antworten: 4
    Letzter Beitrag: 20.06.2006, 12:21
  2. Parallelport
    Von bitcrawler im Forum Algorithmen und sonstige Programmiersprachen
    Antworten: 5
    Letzter Beitrag: 27.01.2002, 12:29
  3. Was ist ein Parallelport?
    Von Bierkasten im Forum Hardware
    Antworten: 3
    Letzter Beitrag: 17.03.2001, 04:47
  4. Was ist ein Parallelport?
    Von Bierkasten im Forum Board Fragen
    Antworten: 3
    Letzter Beitrag: 17.03.2001, 04:47
  5. Parallelport
    Von TMoS im Forum Pascal / Delphi
    Antworten: 3
    Letzter Beitrag: 03.02.2001, 21:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •