Interrupt u uP
Moderátor: Moderátoři
Interrupt u uP
Př.: Potřebuji přesně 2ms a mám procesor s taktem(T=0,5us), předděličku nastavím na 1:16 do registru časovače zadám 7 (256-7=249) tj. přerušení nastane za 0,5 x 16 x 249 = 1992us. Při přerušení se uloží do stacku návratová adresa atd.., reakce na přerušení je 4xT(2us). K novému nastavení časovače jsou 2instrukce 2xT(1us), časovač začne čítat až o 2T(1us) dále.
Takže 1992 + 2 + 1 + 1 = 1996us, tj. pro dorovnání na 2000us musím tedy přidat 8xT(nop) 0,5x8 = 4us před tu část kde je nové nastavení časovače.
Je tento postup správně nebo se toto počítá jinak?
Děkuji za odpovědi.
Pokud to potřebuješ přesně, tak je nejlepší auto reload mód časovače, u něj je perioda přerušení na sw nezávislá. Ale ani u něj nemáš přesně zaručeno, kdy začne obsluha jeho přerušení.