<div dir="ltr"><div dir="ltr"><div>... a dale:</div>1) promenna tlacStickPred by mela byt soucasti tridy tlacitko.<div>2) Stisk by se mel testovat volanim metody, treba stisknuto()</div><div><br></div><div><p class="MsoNormal">                               if (Tlacitko.stisknuto()) { // právě bylo stisknuto, vyvolat událost</p><p class="MsoNormal">                                               Tlacitko.stisk();</p><p class="MsoNormal">                               }</p></div><div><br></div><div>Dale, ty deti uvidi C++ poprve v zivote a nebo uz maji nejake zkusenosti (treba s C)?</div><div><br></div><div>Spise bych to videl na a) zacnu s C (kdekoli), b) zjistim, co je C++ a to tam, kde mam dobry debugger (visual studio), </div><div>c) pouziju C++ v mikrokontroleru</div><div><br></div><div>Kazdopadne hodne stesti...</div><div><br></div><div>-mv</div><div><br></div><div><br></div></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 31, 2021 at 8:13 AM Pavel Brychta <<a href="mailto:pavel.brychta@duhasys.eu">pavel.brychta@duhasys.eu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Přesně tak - konstruktor by měl pouze nastavit vnitřní proměnné a stavy <br>
daného objektu. Pokud například chci použít ten GPIO, který je <br>
"normálně" obsazený LED diodou jako vstup, který umožní něco nouzově <br>
inicializovat, tak to takto použít nejde - statický konstruktor třídy <br>
clLED nastaví ten GPIO jako výstup už při vytváření objektu. Pokud <br>
nastavení fyzického GPIO uděláte až v init(), begin(), setup(), <br>
start()..., tak do té doby můžete ten GPIO použít i jinak. Toto se týká <br>
jakékoliv periferie v MCU, kterou chcete obsluhovat objektově. A pokud <br>
tu inicializaci potřebujete proto, aby ta LEDka nesvítila od zapnutí <br>
napájení, tak pak je chyba v hw designu, kterou sice je možné částečně <br>
napravit ve fw, ale je třeba na to někde upozornit a nemělo by tohle <br>
řešení být pravidlem. Dalším závažným problémem pak je v clTlac::stisk() <br>
to nešťastné přímé volání globálního objektu Led.blikat() a statická <br>
proměnná b - tady bych udělal to, že b přesunu asi jako proměnnou <br>
objektu clTlac a rozhodně nebudu volat Led.blikat() - buď to udělejte <br>
jako callback, nebo registrujte referenci na objekt Led přímo ve třídě <br>
clTlac.<br>
<br>
Pavel Brychta<br>
<br>
Dne 30. 03. 21 v 21:58 Miroslav Šinko napsal(a):<br>
> Osobne sa drzim toho, ze v konstruktore by sa mal "nastavit" len dany <br>
> objekt, t.j. jeho premenne. Konkretne tuto si myslim, ze nie je dobry <br>
> napad inicializovat registre procesora. Objekty su vytvarane ako <br>
> globalne premenne, jednoducho povedane ktovie kedy a ktovie v akom <br>
> poradi. Nastavenie registrov procesora by som v classach vyclenil do <br>
> metod s nazvom povedzme init a tie volal v maine namiesto komentara <br>
> "tady nic neni: inicializace je v konstruktorech".<br>
><br>
> miro<br>
><br>
> On 30.3.2021 20:08, Pavel Hudecek wrote:<br>
>> Dobrý den všem,<br>
>><br>
>> Udělal jsem malou ukázku programu v C++ pro děti na kroužek, prosím o<br>
>> zhodnocení, zda v tom nejsou nějaký nevhodný věci:-)<br>
> _______________________________________________<br>
> HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
> <a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
> <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div></div>