#include <digitalWriteFast.h>
class MyClass {
private:
int pins[5] = { 2, 3, 4, 5, 6};
public:
// 48 micro seconds:
void slowWrite() {
for (int i = 0; i < 5; i++) {
digitalWriteFast(pins[i], 1);
digitalWriteFast(pins[i], 0);
}
}
// 4 micro seconds:
void fastWrite() {
digitalWriteFast(2, 1);
digitalWriteFast(2, 0);
digitalWriteFast(3, 1);
digitalWriteFast(3, 0);
digitalWriteFast(4, 1);
digitalWriteFast(4, 0);
digitalWriteFast(5, 1);
digitalWriteFast(5, 0);
digitalWriteFast(6, 1);
digitalWriteFast(6, 0);
}
};
void setup() {
Serial.begin(1000000);
while (!Serial) {}
unsigned long microsec = 0;
MyClass test;
// It's just a test
pinModeFast(2, OUTPUT);
pinModeFast(3, OUTPUT);
pinModeFast(4, OUTPUT);
pinModeFast(5, OUTPUT);
pinModeFast(6, OUTPUT);
while (1) {
microsec = micros();
test.slowWrite();
Serial.println(micros() - microsec);
}
}