Interrupt u uP
Napsal: 18 dub 2010, 07:43
Potřebuji poradit s výpočtem přesné doby přerušení 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.
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.