Re: Ukazka C++ pro děti
Pavel Brychta
pavel.brychta na duhasys.eu
Středa Březen 31 08:13:06 CEST 2021
Přesně tak - konstruktor by měl pouze nastavit vnitřní proměnné a stavy
daného objektu. Pokud například chci použít ten GPIO, který je
"normálně" obsazený LED diodou jako vstup, který umožní něco nouzově
inicializovat, tak to takto použít nejde - statický konstruktor třídy
clLED nastaví ten GPIO jako výstup už při vytváření objektu. Pokud
nastavení fyzického GPIO uděláte až v init(), begin(), setup(),
start()..., tak do té doby můžete ten GPIO použít i jinak. Toto se týká
jakékoliv periferie v MCU, kterou chcete obsluhovat objektově. A pokud
tu inicializaci potřebujete proto, aby ta LEDka nesvítila od zapnutí
napájení, tak pak je chyba v hw designu, kterou sice je možné částečně
napravit ve fw, ale je třeba na to někde upozornit a nemělo by tohle
řešení být pravidlem. Dalším závažným problémem pak je v clTlac::stisk()
to nešťastné přímé volání globálního objektu Led.blikat() a statická
proměnná b - tady bych udělal to, že b přesunu asi jako proměnnou
objektu clTlac a rozhodně nebudu volat Led.blikat() - buď to udělejte
jako callback, nebo registrujte referenci na objekt Led přímo ve třídě
clTlac.
Pavel Brychta
Dne 30. 03. 21 v 21:58 Miroslav Šinko napsal(a):
> Osobne sa drzim toho, ze v konstruktore by sa mal "nastavit" len dany
> objekt, t.j. jeho premenne. Konkretne tuto si myslim, ze nie je dobry
> napad inicializovat registre procesora. Objekty su vytvarane ako
> globalne premenne, jednoducho povedane ktovie kedy a ktovie v akom
> poradi. Nastavenie registrov procesora by som v classach vyclenil do
> metod s nazvom povedzme init a tie volal v maine namiesto komentara
> "tady nic neni: inicializace je v konstruktorech".
>
> miro
>
> On 30.3.2021 20:08, Pavel Hudecek wrote:
>> Dobrý den všem,
>>
>> Udělal jsem malou ukázku programu v C++ pro děti na kroužek, prosím o
>> zhodnocení, zda v tom nejsou nějaký nevhodný věci:-)
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list