1.1 --- a/c++/led-displej/led-displej.cpp Tue Apr 24 21:02:52 2012 +0200
1.2 +++ b/c++/led-displej/led-displej.cpp Fri May 15 20:32:37 2020 +0200
1.3 @@ -12,7 +12,7 @@
1.4 */
1.5 const int BRZDA = 100000;
1.6
1.7 -void zapisSeriove(bool hodnoty[]);
1.8 +void zapisSeriove(bool hodnoty[], int n);
1.9 void zapisData(bool hodnota);
1.10 void zapisClock(bool hodnota);
1.11 void cekej(int mikroSekund);
1.12 @@ -21,15 +21,11 @@
1.13 std::cout << "spouštím program LED Displej" << std::endl;
1.14
1.15 bool hodnoty[] = {1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1};
1.16 -
1.17 - std::cout << "velikost pole: " << sizeof(hodnoty) << std::endl; // vypíše 36
1.18 -
1.19 - zapisSeriove(hodnoty);
1.20 + zapisSeriove(hodnoty, sizeof(hodnoty));
1.21 }
1.22
1.23 -void zapisSeriove(bool hodnoty[]) {
1.24 - std::cout << "velikost pole ve funkci: " << sizeof(hodnoty) << std::endl; // vypíše 8
1.25 - for (int i = 0; i < sizeof(hodnoty); i++) {
1.26 +void zapisSeriove(bool hodnoty[], int n) {
1.27 + for (int i = 0; i < n; i++) {
1.28 zapisData(hodnoty[i]);
1.29 cekej(1);
1.30 zapisClock(true);
1.31 @@ -38,26 +34,37 @@
1.32 cekej(1);
1.33 std::cout << "---" << std::endl;
1.34 }
1.35 + std::cout << "vypsáno hodnot: " << n << std::endl;
1.36 }
1.37
1.38 +/**
1.39 + * TODO: použít jiné než datové piny (tam lze zapsat jen celý bajt najednou)
1.40 + */
1.41 void zapisData(bool hodnota) {
1.42 std::cout << "DATA = " << hodnota << std::endl;
1.43 if (hodnota) {
1.44 - // TODO: zapsat na LPT
1.45 + // TODO: zapsat na LPT (a nevymazat CLOCK)
1.46 } else {
1.47 - // TODO: zapsat na LPT
1.48 + // TODO: zapsat na LPT (a nevymazat CLOCK)
1.49 }
1.50 }
1.51
1.52 +/**
1.53 + *
1.54 + */
1.55 void zapisClock(bool hodnota) {
1.56 std::cout << "CLOCK = " << hodnota << std::endl;
1.57 if (hodnota) {
1.58 - // TODO: zapsat na LPT
1.59 + // TODO: zapsat na LPT (a nevymazat DATA)
1.60 } else {
1.61 - // TODO: zapsat na LPT
1.62 + // TODO: zapsat na LPT (a nevymazat DATA)
1.63 }
1.64 }
1.65
1.66 +/**
1.67 + * Čeká zadaný čas v mikrosekundách.
1.68 + * Je možné zpomalit konstantou BRZDA.
1.69 + */
1.70 void cekej(int mikroSekund) {
1.71 usleep(mikroSekund*BRZDA);
1.72 }