AVR Embedded Tutorial - Shiftregister/de

From Lazarus wiki
Revision as of 00:01, 6 November 2017 by Mathias (talk | contribs) (Created page with "{{Translate}} {{Warning| In Arbeit}} =Schieberegister= Der Beispielcode ist für ein ATtiny2313. ==Schieberegister schreiben== <syntaxhighlight lang="pascal"> const // P...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Template:Translate

Warning-icon.png

Warnung: In Arbeit


Schieberegister

Der Beispielcode ist für ein ATtiny2313.

Schieberegister schreiben

const
  // PortB
  dataInPin = 0;

  // PortD
  dataOutPin = 0;
  latchPin = 1;
  clockPin = 2;


Schieberegister schreiben

  function ShiftIn74HC165: byte;
  var
    Data: byte = 0;
    i: byte;
  begin
    mysleep(20);
    for i := 0 to 7 do begin
      Data := (Data shl 1) or Byte(ReadPortB(dataInPin));
      WritePortD(clockPin, True);
      mysleep(20);
      WritePortD(clockPin, False);
      mysleep(20);
    end;
    Result := Data;
  end;

Schieberegister lesen

  function ShiftIn74HC165: byte;
  var
    Data: byte = 0;
    i: byte;
  begin
    mysleep(20);
    for i := 0 to 7 do begin
      Data := (Data shl 1) or Byte(ReadPortB(dataInPin));
      WritePortD(clockPin, True);
      mysleep(20);
      WritePortD(clockPin, False);
      mysleep(20);
    end;
    Result := Data;
  end;