Velikost programu při různém matematickém zápisu

Ukázka, jak se změní výsledná velikost kódu při použití jinak použitého zápisu. V obou případech program funguje stejně, ale je to pěkný příklad, na jakou velikost může narůst program při určitém zápisu.


Není se moc čemu divit. V prvním případě jsi totiž použil float aritmetiku, kdežto druhý případ je čistě celočíselný.
Ještě optimalizace: tu “25” vynásob 1.6 => násobíš 40cítkou a pak místo dělení použij posun o 4 bity doprava :slight_smile:. Porovnej si rychlosti.
Tato optimalizace dělení jde použít téměř vždy, kdy není dělitel proměnná. Tedy i na dalších řádcích. Program tak můžeš několikanásobně zrychlit.

Neporadil by si překladač s použítím ADC místo ADCH a ADCL?

Díky za rady. Tak jsem to vyzkoušel a je to funkční. S tou float aritmetikou je mi to jasný, jen to mám jako příklad, jak může poměrně jednoduchý program při nevhodném zápisu zabrat obrovské množství paměti uProcesoru.