Advertisement
Guest User

Untitled

a guest
Jul 15th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <Arduino.h>
  2.  
  3. enum Pin : unsigned char {
  4.     CLOCK = 2,
  5.     BUS_0 = 3,
  6.     BUS_1 = 4,
  7.     BUS_2 = 5,
  8.     BUS_3 = 6,
  9.     BUS_4 = 7,
  10.     BUS_5 = 8,
  11.     BUS_6 = 9,
  12.     BUS_7 = 10,
  13.     LOAD = 11,
  14.     ENABLE = 12
  15. };
  16.  
  17. const uint8_t bus[8] = {
  18.     Pin::BUS_0,
  19.     Pin::BUS_1,
  20.     Pin::BUS_2,
  21.     Pin::BUS_3,
  22.     Pin::BUS_4,
  23.     Pin::BUS_5,
  24.     Pin::BUS_6,
  25.     Pin::BUS_7
  26. };
  27.  
  28. void setup() {
  29.  
  30.     pinMode(Pin::CLOCK, OUTPUT);
  31.     digitalWrite(Pin::CLOCK, LOW);
  32.     pinMode(Pin::LOAD, OUTPUT);
  33.     digitalWrite(Pin::LOAD, HIGH);
  34.     pinMode(Pin::ENABLE, OUTPUT);
  35.     digitalWrite(Pin::ENABLE, HIGH);
  36.  
  37.     for (size_t it = 0; it < sizeof(bus); it++) {
  38.         pinMode(bus[it], OUTPUT);
  39.         digitalWrite(bus[it], LOW);
  40.     }
  41. }
  42.  
  43. void loop() {
  44.     delay(5000);
  45.     for (uint8_t n = 0; n < 0xFF; n++) {
  46.  
  47.         // Write 8 bits to bus
  48.         digitalWrite(Pin::CLOCK, LOW);
  49.         digitalWrite(Pin::ENABLE, HIGH);
  50.         digitalWrite(Pin::LOAD, LOW);
  51.         for (size_t it = 0; it < sizeof(bus); it++) {
  52.             digitalWrite(bus[it], bitRead(n, it));
  53.         }
  54.  
  55.         // Pulse clock
  56.         delay(50);
  57.         digitalWrite(Pin::CLOCK, HIGH);
  58.         delay(50);
  59.         digitalWrite(Pin::CLOCK, HIGH);
  60.         digitalWrite(Pin::LOAD, HIGH);
  61.         delay(50);
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement