AVR-gcc4.0
Szima Gábor
sygma at tesla.hu
Wed Apr 5 11:39:42 CEST 2006
Sziasztok!
Nezegetem, hogy mennyire hatekony kodot tud forditani a gcc-4.0.3 AVR-re.
Eleg meggyozonek tunik, szinte ASM hatekonysagu idok jonnek ki. Legjobban az
tetszik benne, hogy fogom a "sima" linuxos/vindozos forrast, es befordul...
Par aprosag azonban nem tetszik, pl. O2-nel olyan dolgokat is kidobal a kodbol,
amit nem kene (pl. megszakitasbol allitok egy flag-et, amit egy vegtelen ciklus
figyel. Erre "rajon", hogy az felesleges, mert ugysem valtozik (de igen,
IRQ-bol fog :). Van ennek kikuszobolesere kapcsolo vagy programozastechnikai
fogas?
A masik, hogy a megszakitas-kezeles kisse lassucska...
Ha "ures" a SIGNAL, akkor 24 clk megy el, ha egy egyszeru globalis uint8
inkrementalasa van benne, akkor 33 clk. Gondolom stack-re kezdi kitenni a
regisztereket, neha feleslegesen.B
Pl. ugyanaz a 10 lepeses "for" foprogramban 40, IRQ-ban 50 clk-t (plusz 24)
visz el...
Ezzel lehet valamit kezdeni?
Ja igen, bonusz kerdes. :)
Hogyan erdemes (TIMER1 segitsegevel) nagy sebessegu (Fosc), de 32 bites
szamlalot csinalni? Mondjuk ez meg konnyu (tulcsordulaskor leptetek egy 16
bites szamlalot), csak a kiolvasas a huzos... Ugyanis ha ez akkor tortenik,
amikor epp csordul, akkor valamelyik fele hibas lesz.
Igazabol INT0-ra adott jelek elvaltasainak idejet szeretnem pontosan merni, us
felbontassal, max. par ms ideig. Ami e felett van, arrol eleg annyi info, hogy
tulcsordult. A 16 bites szamlalo is eleg lenne, csak a tulcsordulas detektalasa
kerdeses. Az egyik megoldas az lehet, hogy torlom a TCNT1-et, es a megszakitas
csak beallitja a tulcsordulas flag-et, de ez akkor nem jo, amikor masra is
akarom hasznalni az timer-t (pl. idozitesre).
-Sygma
More information about the Elektro
mailing list