AVR-gcc4.0
Sztrikó János
elektrolista at gradev.hu
Wed Apr 5 15:36:43 CEST 2006
Szima Gábor wrote:
> 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?
Volatile, de ezt már mondták :-)
>
> 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?
SIGNAL(signame) __attribute__((naked))
De ekkor persze neked kell megcsinálni a regiszterek elmentését, ha
szükség van rá.
>
> 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).
Köss sorba a TIMER1-el még egy számlálót. Az egyik Output Compare
egységet állítsd FFFF-re, az OC lábat pedig kösd rá a másik számláló
bemenetére (1, ha FFFF), a másik számláló pedig számoljon lefutó élt.
Csak improvizálok, ha hülyeség, akkor szólj :-)
János
More information about the Elektro
mailing list