author | František Kučera <franta-hg@frantovo.cz> |
Sat Nov 19 22:28:08 2016 +0100 (2016-11-19) | |
changeset 35 | ef8152d84946 |
child 37 | 0a06481eec13 |
permissions | -rw-r--r-- |
franta-hg@16 | 1 |
#include <stdlib.h> |
franta-hg@16 | 2 |
#include <iostream> |
franta-hg@16 | 3 |
|
franta-hg@16 | 4 |
/** |
franta-hg@16 | 5 |
* Slouží k ovládání LED displeje pomocí řadiče M5482 připojeného na LPT port. |
franta-hg@16 | 6 |
* Používají se jen dva piny: DATA a CLOCK signál. |
franta-hg@16 | 7 |
*/ |
franta-hg@16 | 8 |
|
franta-hg@16 | 9 |
/** |
franta-hg@16 | 10 |
* = 1 → normální běh |
franta-hg@16 | 11 |
* > 1 → zpomalené pro ladění |
franta-hg@16 | 12 |
*/ |
franta-hg@16 | 13 |
const int BRZDA = 100000; |
franta-hg@16 | 14 |
|
franta-hg@16 | 15 |
void zapisSeriove(bool hodnoty[]); |
franta-hg@16 | 16 |
void zapisData(bool hodnota); |
franta-hg@16 | 17 |
void zapisClock(bool hodnota); |
franta-hg@16 | 18 |
void cekej(int mikroSekund); |
franta-hg@16 | 19 |
|
franta-hg@16 | 20 |
int main() { |
franta-hg@16 | 21 |
std::cout << "spouštím program LED Displej" << std::endl; |
franta-hg@16 | 22 |
|
franta-hg@16 | 23 |
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}; |
franta-hg@16 | 24 |
|
franta-hg@16 | 25 |
std::cout << "velikost pole: " << sizeof(hodnoty) << std::endl; // vypíše 36 |
franta-hg@16 | 26 |
|
franta-hg@16 | 27 |
zapisSeriove(hodnoty); |
franta-hg@16 | 28 |
} |
franta-hg@16 | 29 |
|
franta-hg@16 | 30 |
void zapisSeriove(bool hodnoty[]) { |
franta-hg@16 | 31 |
std::cout << "velikost pole ve funkci: " << sizeof(hodnoty) << std::endl; // vypíše 8 |
franta-hg@16 | 32 |
for (int i = 0; i < sizeof(hodnoty); i++) { |
franta-hg@16 | 33 |
zapisData(hodnoty[i]); |
franta-hg@16 | 34 |
cekej(1); |
franta-hg@16 | 35 |
zapisClock(true); |
franta-hg@16 | 36 |
cekej(1); |
franta-hg@16 | 37 |
zapisClock(false); |
franta-hg@16 | 38 |
cekej(1); |
franta-hg@16 | 39 |
std::cout << "---" << std::endl; |
franta-hg@16 | 40 |
} |
franta-hg@16 | 41 |
} |
franta-hg@16 | 42 |
|
franta-hg@16 | 43 |
void zapisData(bool hodnota) { |
franta-hg@16 | 44 |
std::cout << "DATA = " << hodnota << std::endl; |
franta-hg@16 | 45 |
if (hodnota) { |
franta-hg@16 | 46 |
// TODO: zapsat na LPT |
franta-hg@16 | 47 |
} else { |
franta-hg@16 | 48 |
// TODO: zapsat na LPT |
franta-hg@16 | 49 |
} |
franta-hg@16 | 50 |
} |
franta-hg@16 | 51 |
|
franta-hg@16 | 52 |
void zapisClock(bool hodnota) { |
franta-hg@16 | 53 |
std::cout << "CLOCK = " << hodnota << std::endl; |
franta-hg@16 | 54 |
if (hodnota) { |
franta-hg@16 | 55 |
// TODO: zapsat na LPT |
franta-hg@16 | 56 |
} else { |
franta-hg@16 | 57 |
// TODO: zapsat na LPT |
franta-hg@16 | 58 |
} |
franta-hg@16 | 59 |
} |
franta-hg@16 | 60 |
|
franta-hg@16 | 61 |
void cekej(int mikroSekund) { |
franta-hg@16 | 62 |
usleep(mikroSekund*BRZDA); |
franta-hg@16 | 63 |
} |
franta-hg@16 | 64 |