Jak zacházet s Timer2 v rodině 8052

N

nikhileshsawarkar

Guest
Ahoj opět odborníci,
Nějaký problém při vyřizování mé Timer2.
Jsem pomocí řady 8052 AT89S8253 řadič.Jsem pomocí Timer2 jako 16 auto reload bit mode.My kompilátor Keil UV2.Chtěl jsem se dostat přerušit každou 1 ms, takže hodnoty jsem nastavit v RCAP2H = 0xFC a RCAP2L = 0x65.
kód

/ / V hlavních
timer2_init ()
(
RCAP2H = 0xFC;
RCAP2L = 0x65;
T2CON | = 0x00;
T2H = 0xFC;
T2L = 0x65;
TR2 = 1;
)
/ / ISR dostat jen jednou 1ms
int counter = 0; / / globální int

timer2_isr () přeruší 5 se použije 1
(
pult ;
if (pult == 60000) / / půjdou dovnitř každou 1 min.
(
counter = 0; / / X Zone
)

)Ale Im dostat něco špatně ...
1.Bez ohledu na jakékoliv hodnoty dal jsem do RCAP2H a RCAP2L, jeho děje v 'X Zone' každých 12 sekund (cca), ale ne v každém minut (to jsem pozorované v debuggeru a CRO obojí)
2.Je exicuting ISR každý 0,1 ms (cca) namísto toho o 1ms.

My Q je, je nějaký jiný přednastavení nutné, aby bylo možné pracovat správně?

Díky a jde,

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />Nikhilesh

 
Hi nikhileshsawarkar

Co taktovací frekvence používáte?

Jste zúčtování přerušení vlajku?Pokud ne, budete mít opakovaně přerušit, jakmile opustíte ISR.

jde ...Polymath

 
Mám to drahý!
Nebyl jsem clearing přerušení vlajky (TF2) v ISR.
Teď to začalo pracovat,
Než: D
Nikhilesh

 
Může somone prosím, řekni mi, co je cílem "pomocí 1" v souladu "timer2_isr () přeruší 5 Použití 1"

 

Welcome to EDABoard.com

Sponsor

Back
Top