Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- enum Pin : unsigned char {
- CLOCK = 2,
- BUS_0 = 3,
- BUS_1 = 4,
- BUS_2 = 5,
- BUS_3 = 6,
- BUS_4 = 7,
- BUS_5 = 8,
- BUS_6 = 9,
- BUS_7 = 10,
- LOAD = 11,
- ENABLE = 12
- };
- const uint8_t bus[8] = {
- Pin::BUS_0,
- Pin::BUS_1,
- Pin::BUS_2,
- Pin::BUS_3,
- Pin::BUS_4,
- Pin::BUS_5,
- Pin::BUS_6,
- Pin::BUS_7
- };
- void setup() {
- pinMode(Pin::CLOCK, OUTPUT);
- digitalWrite(Pin::CLOCK, LOW);
- pinMode(Pin::LOAD, OUTPUT);
- digitalWrite(Pin::LOAD, HIGH);
- pinMode(Pin::ENABLE, OUTPUT);
- digitalWrite(Pin::ENABLE, HIGH);
- for (size_t it = 0; it < sizeof(bus); it++) {
- pinMode(bus[it], OUTPUT);
- digitalWrite(bus[it], LOW);
- }
- }
- void loop() {
- delay(5000);
- for (uint8_t n = 0; n < 0xFF; n++) {
- // Write 8 bits to bus
- digitalWrite(Pin::CLOCK, LOW);
- digitalWrite(Pin::ENABLE, HIGH);
- digitalWrite(Pin::LOAD, LOW);
- for (size_t it = 0; it < sizeof(bus); it++) {
- digitalWrite(bus[it], bitRead(n, it));
- }
- // Pulse clock
- delay(50);
- digitalWrite(Pin::CLOCK, HIGH);
- delay(50);
- digitalWrite(Pin::CLOCK, HIGH);
- digitalWrite(Pin::LOAD, HIGH);
- delay(50);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement