Stránka 1 z 1

_wait_ms

Napsal: 03 pro 2011, 18:46
od jirkasi
Zdravím nově jsem se začal zajímat o atmely, zkoušel jsem v avr studio 5 vytvořit jednoduchý program a když potřebuji pauzu tak jsem použil funkci
_wait_ms a udělalo to výsledný hex soubor přes 10 kb, což by se do atmega8 nevešlo, tedy jsem použil normálně for a prázdný příkaz což funguje, ale je to takové divoké a těžko říct jestli se vůbec dá na to časování nějak spolehnout, nevíte jaká jiná funkce by byla lepší?

Napsal: 03 pro 2011, 20:47
od AB1
Kde je v Avr Studiu funkce _wait_ms() ?
Avrstudio je jenom programovací prostředí.
Nás zajímá použitý překladač. (Avr-gcc?)

Velikost souboru .hex neříká nic o velikosti kódu.

Napsal: 03 pro 2011, 21:18
od jirkasi
jasně, je to v knihovně delay.h

Napsal: 03 pro 2011, 21:40
od AB1
V Avr-gcc je sice knihovna "delay.h", ale neobsahuje funkci _wait_ms().
Takže nevím...

Napsal: 03 pro 2011, 22:14
od jirkasi
odkazuje se to na knihovnu util/delay.h

Napsal: 03 pro 2011, 22:51
od AB1
Bývá zvykem napsat: používám Avrstudio a Winavr.
Ani v knihovně util/delay.h není funkce _wait_ms().
Pleteš si ji asi s funkcí _delay_ms().

Pokud je to tak:
Funce _delay_ms() vyžaduje aby:
1. Optimalizace nebyla O0

2. Argument musí být konstanta (ne proměnná)
_delay_ms(100); //dobře

uint8_t doba=100;
_delay_ms(doba); //špatně

while(doba--)
_delay_ms(1); //dobře

Napsal: 03 pro 2011, 23:04
od jirkasi
dík, ale ve AVR Studiu se optimalizace nezadává, nebo jsem to tedy nenašel

Napsal: 05 pro 2011, 08:36
od divous
Zadává, stačí pořádně prohledat "Options...".

Napsal: 05 pro 2011, 17:38
od jirkasi
Dík našel jsem to, ale nefunguje to stejně, je tam pořád velikost hex souboru při použití 2 _delay_ms s konstantní hodnotou cca 10 kb. Asi už je to avr studio optimalizované pro ty novější mikrokontroléry co mají větší paměť. To nevadí snad někde seženu starší verze

Napsal: 05 pro 2011, 17:42
od Andrea
10kb HEX = 1,25kB HEX a to může být třeba 600B BIN :wink:

Napsal: 05 pro 2011, 17:46
od jirkasi
ne je to přesně 8810 znaků tedy bajtů

Napsal: 05 pro 2011, 17:50
od Andrea
Tak to převeď do binu, pak se dá mluvit o skutečné velikosti.

Napsal: 05 pro 2011, 17:53
od jirkasi
to se dělá jak?

Napsal: 05 pro 2011, 17:54
od Andrea

Napsal: 05 pro 2011, 18:01
od jirkasi
dík, já se s tím nějak popasuju