diff -r 000000000000 -r e5ba2908aff1 c++/led-displej/led-displej.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c++/led-displej/led-displej.cpp Tue Sep 09 16:01:58 2014 +0200 @@ -0,0 +1,64 @@ +#include +#include + +/** + * Slouží k ovládání LED displeje pomocí řadiče M5482 připojeného na LPT port. + * Používají se jen dva piny: DATA a CLOCK signál. + */ + +/** + * = 1 → normální běh + * > 1 → zpomalené pro ladění + */ +const int BRZDA = 100000; + +void zapisSeriove(bool hodnoty[]); +void zapisData(bool hodnota); +void zapisClock(bool hodnota); +void cekej(int mikroSekund); + +int main() { + 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); +} + +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++) { + zapisData(hodnoty[i]); + cekej(1); + zapisClock(true); + cekej(1); + zapisClock(false); + cekej(1); + std::cout << "---" << std::endl; + } +} + +void zapisData(bool hodnota) { + std::cout << "DATA = " << hodnota << std::endl; + if (hodnota) { + // TODO: zapsat na LPT + } else { + // TODO: zapsat na LPT + } +} + +void zapisClock(bool hodnota) { + std::cout << "CLOCK = " << hodnota << std::endl; + if (hodnota) { + // TODO: zapsat na LPT + } else { + // TODO: zapsat na LPT + } +} + +void cekej(int mikroSekund) { + usleep(mikroSekund*BRZDA); +} +