po optimalizaci kódu pro rychlost se mi stává že ESP32 se samovolně restartuje, stačí zadat "Delay(1)" a už je vše OK. Jenže použití zastavení programu koresponduje negativně s onou optimalizací pro rychlost. Je to vysvětlitelný protože smyčka proběhne v kratší čas, tak asi nějaká knihovna tomu brání.
Otázka:
má seriové řazení vliv na rychlost procedůr? Nezáleží na kapacitě RAM, ale na rychlosti vyhledání/uložení.
Příklad sériové zdrženlivosti:
Kód: Vybrat vše
Soucasny_Cas_4 = millis();
if (Soucasny_Cas_4 - Minuly_Cas_4 >= Doba_resetu_ctvrtecni)
{
Minuly_Cas_4 = Soucasny_Cas;
// Akce I.
Soucasny_Cas_2 = millis();
if (Soucasny_Cas_2 - Minuly_Cas_2 >= Doba_resetu_polovicni)
{
Minuly_Cas_2 = Soucasny_Cas_2;
// Akce II.
Soucasny_Cas_2 = millis();
if (Soucasny_Cas - Minuly_Cas >= Doba_resetu_zakladni)
{
Minuly_Cas = Soucasny_Cas;
// Akce III.
}
}
}
Kód: Vybrat vše
Soucasny_Cas_4 = millis();
if (Soucasny_Cas_4 - Minuly_Cas_4 >= Doba_resetu_ctvrtecni)
{
Minuly_Cas_4 = Soucasny_Cas_4;
// Akce I.
}
Soucasny_Cas_2 = millis();
if (Soucasny_Cas_2 - Minuly_Cas_2 >= Doba_resetu_polovicni)
{
Minuly_Cas_2 = Soucasny_Cas_2;
// Akce II.
}
Soucasny_Cas = millis();
if (Soucasny_Cas - Minuly_Cas >= Doba_resetu_zakladni)
{
Minuly_Cas = Soucasny_Cas;
// Akce III.
}
Logicky vzato, sériové musí být časově úspornější, ale je tomu opravdu tak?
Nemůžu se doměrit.