# HG changeset patch
# User František Kučera <franta-hg@frantovo.cz>
# Date 1479591002 -3600
# Node ID 0a06481eec13142df6f6493aa4803b374a427b64
# Parent  03757ff746945d5efd2ba16cc9104af8689808a9
led-displej: vylepšení

diff -r 03757ff74694 -r 0a06481eec13 c++/led-displej/led-displej.cpp
--- a/c++/led-displej/led-displej.cpp	Sat Nov 19 22:29:10 2016 +0100
+++ b/c++/led-displej/led-displej.cpp	Sat Nov 19 22:30:02 2016 +0100
@@ -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);
 }