Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#12

Re: 16-Bit Folge über LPT ausgeben

  Alt 14. Jan 2008, 22:28
Delphi-Quellcode:
procedure WriteWord(const APort: Word; const AData: Word);
const
  CLOCK = 1;
  LOAD = 2;
  DATA = 4;
var
  i: integer;
  lData: Word;
  lPortData: Byte;
  lBit: boolean;
begin
  lData := AData;

  PortIO(APort, 0); // LOAD löschen

  for i := 0 to 15 do
  begin
      // Bit ermitteln
    lBit := ( lData and $8000 ) <> 0;
    lData := lData shl 1;
   
    if lBit then
      lPortData := DATA
    else
      lPortData := 0;
    PortIO(APort, lPortData); // Data setzen
    delay(5); // kann vllt. weg
    PortIO(APort, lPortData or CLOCK); // CLOCK zusätzlich setzen
    delay(5);
    PortIO(APort, lPortData); // CLOCK wieder löschen

      // trotz des Timings können folgende beiden Zeile wahrscheinlich weg...
    delay(5);
    PortIO(APort, 0); // DATA löschen
  end;

  PortIO(APort, LOAD);
end;
Wieder nur aus dem Beitragseditor...
  Mit Zitat antworten Zitat