<div dir="ltr">Já se komplikovaným složeným podmínkám vyhýbám důsledným využíváním principu  stavového automatu všude , kde to jen trochu jde. Obvykle se mi pak daří v každém stavu testovat <div>jen jednu podmínku a k tomu obvykle nějaký time out, aby to v tom konkrétním stavu nezamrzlo. Pro ladění pak stačí posílat na sériový port jen info o změně stavu toho automatu. </div><div>. <br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Zdravi<br>Jirka Sloupenský  OK1MWW</div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">pá 12. 4. 2024 v 10:27 odesílatel Jan Waclawek <<a href="mailto:konfera@efton.sk">konfera@efton.sk</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Vcera zhodou okolnosti som mal "prilezitost" sa na takych zlozenych<br>
podmienkach vyburit, a tak by som este rad doplnil dve navzajom pribuzne,<br>
relativne marginalne optimalizacne techniky, ktore pouzivam:<br>
<br>
1. ak sa zlozena podmienka vypocitava casto ale meni zriedkavo, tak si ju<br>
"predpocitavam" do pomocnej premennej (sam pre seba to volam "cache", aj<br>
ked to nie je asi spravne z pohladu standardneho pouzitia toho slova).<br>
T.j. namiesto<br>
if (podmienka1 && podmienka2 && podmienka3) {}<br>
napisem <br>
if (zlozenaPodmienka) {}<br>
a vzdy ked sa meni podmienka1, podmienka2, podmienka3 tak zavolam<br>
void ZmenaZlozenejPodmienky(void) {<br>
  zlozenaPodmienka = podmienka1 && podmienka2 && podmienka3;<br>
}<br>
<br>
2. ak podmienky su bitove stavy, tak ich s oblubou skladam do bytu/wordu,<br>
kde potom namiesto testu s && staci otestovat cely byte/word na nulu.<br>
Na toto sa da s vyhodou vyuzit bit-banding v Cortex-M3/4 (resp. bitova<br>
oblast v '51, bit-banding na rozhrani pamati v niektorych Kinetisoch,<br>
apod.)<br>
<br>
Obe tieto techniky maju pomerne zasadny nedostatok v tom, ze na prvy pohlad<br>
"nie je vidiet" pouzitie tych jednotlivych podmienok.<br>
<br>
wek<br>
<br>
<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>