digitalWriteFast mit ATtiny

By | 29. März 2014

Für ein schnelles Füllen von Schieberegistern ist man auf eine hohe Schaltgeschwindigkeit der einzelnen Pins angewiesen. Mit einem Arduino Uno (@ 16Mhz) dauert das toggeln eines Pins bis zu 12 µs, was bei mehreren in Reihe geschalteten Schieberegistern zu einem Verlust von Rechenzeit führt, mit der die nächsten Elemente berechnet werde müssen.

Es existiert eine Bibliothek namens digitalWriteFast, die in der Lage ist, eine Pin-Toggle in unter 1 µs durchzuführen. Allerdings hat sie so ihre Macken, sobald sie mit einem ATtiny in Berührung kommt. Also habe ich die Bibliothek für ATtinys umgeschrieben.

Download
digitalwritefasttiny.zip | 1 kB

Der Ordner digitalWriteFastTiny wird nach C:\Users\Benutzername\Documents\Arduino\libraries bzw. C:\Program Files\Arduino\libraries kopiert und anschließend wie im Beispiel eingebunden.

Beispiel:

#include <digitalWriteFastTiny.h>
#define led 0
 
void setup() {               
  pinMode(led, OUTPUT);
}
 
void loop() {
  digitalWriteFast(led, HIGH);
  delay(1000);
  digitalWriteFast(led, LOW);
  delay(1000);
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.