diff -r 131d2652b241 -r d6614ad97bed c++/led-displej/led-displej.cpp --- a/c++/led-displej/led-displej.cpp Tue Apr 24 21:02:52 2012 +0200 +++ b/c++/led-displej/led-displej.cpp Fri May 15 20:32:37 2020 +0200 @@ -12,7 +12,7 @@ */ const int BRZDA = 100000; -void zapisSeriove(bool hodnoty[]); +void zapisSeriove(bool hodnoty[], int n); void zapisData(bool hodnota); void zapisClock(bool hodnota); void cekej(int mikroSekund); @@ -21,15 +21,11 @@ std::cout << "spouštím program LED Displej" << std::endl; 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}; - - std::cout << "velikost pole: " << sizeof(hodnoty) << std::endl; // vypíše 36 - - zapisSeriove(hodnoty); + zapisSeriove(hodnoty, sizeof(hodnoty)); } -void zapisSeriove(bool hodnoty[]) { - std::cout << "velikost pole ve funkci: " << sizeof(hodnoty) << std::endl; // vypíše 8 - for (int i = 0; i < sizeof(hodnoty); i++) { +void zapisSeriove(bool hodnoty[], int n) { + for (int i = 0; i < n; i++) { zapisData(hodnoty[i]); cekej(1); zapisClock(true); @@ -38,26 +34,37 @@ cekej(1); std::cout << "---" << std::endl; } + std::cout << "vypsáno hodnot: " << n << std::endl; } +/** + * TODO: použít jiné než datové piny (tam lze zapsat jen celý bajt najednou) + */ void zapisData(bool hodnota) { std::cout << "DATA = " << hodnota << std::endl; if (hodnota) { - // TODO: zapsat na LPT + // TODO: zapsat na LPT (a nevymazat CLOCK) } else { - // TODO: zapsat na LPT + // TODO: zapsat na LPT (a nevymazat CLOCK) } } +/** + * + */ void zapisClock(bool hodnota) { std::cout << "CLOCK = " << hodnota << std::endl; if (hodnota) { - // TODO: zapsat na LPT + // TODO: zapsat na LPT (a nevymazat DATA) } else { - // TODO: zapsat na LPT + // TODO: zapsat na LPT (a nevymazat DATA) } } +/** + * Čeká zadaný čas v mikrosekundách. + * Je možné zpomalit konstantou BRZDA. + */ void cekej(int mikroSekund) { usleep(mikroSekund*BRZDA); }