6 cvičení – 6 domácích úkolů odevzdávaných do recodexu
plus závěrečná úloha v SISu
k úkolu ze systémů – nemusí nás trápit oscilace, musíme udělat jednotný kód pro všechna tři tlačítka (přístup C nebo C++)
// předávání funkcí v C
struct Button;
typedef void(*action-f)(Button &b);
void increment(Button &b) { counter++; }
struct Button { int pin; bool down; action-f down; }
struct Button buttons[3];
button[0].down = &increment;
// třídy v C++
// virtuální funkce + virtuální destruktor
// když k nějaké virtuální metodě dám =0, tak mi to znemožní vytvořit samotnou třídu – u každého syna musím danou metodu přepsat
// nepoužívat operátor new
// chci mít pole tlačítek
Button *buttons[3];
// uděláme si globální proměnné pro jednotlivé typy (tři tlačítka) a pak jejich ukazatele uložíme do pole
// všechen kód na detekci změny nebo autorepeatu bude ve funkci loop
// můžeme si vybrat, který přístup se nám líbí víc
ReCodEx má problém s voláním funkcí v globálním scopu
u tříd dělá problém volání funkcí v konstruktoru a při přímé inicializaci vlastností objektu (stylem int t = millis();
)
dají se používat dvě metody latchování
pasti
int *p;
– může ukazovat kamkoliv do pamětiúkol
p[0]
až p[3]
getMessage()
\0
)