Как обращаться Timer2 В 8052 семья

N

nikhileshsawarkar

Guest
Привет снова экспертов,
Некоторые проблемы в обработке моей Timer2.
Я использую 8052 серия AT89s8253 контроллер.Я использую Timer2 как 16-битный компилятор mode.My автоматической перезагрузки Keil UV2.Я хотел получить прерывание каждые 1 мс таких значений я установил в RCAP2H = 0xFC и RCAP2L = 0x65.
Код

/ / в основные
timer2_init ()
(
RCAP2H = 0xFC;
RCAP2L = 0x65;
T2CON | = 0x00;
T2H = 0xFC;
T2L = 0x65;
TR2 = 1;
)
/ / ISR вызывается каждый 1ms
Int Counter = 0; / / Global Int

timer2_isr () прервать 5, используя 1
(
Счетчик ;
если (счетчик == 60000) / / будет идти внутрь каждые 1 мин.
(
Counter = 0; / / X ZONE
)

)Но Im получить что-то неправильно ...
1.Независимо от того, любое значение, я ставлю в RCAP2H и RCAP2L, ее происходит в "Зона Х" каждый 12 секунд (примерно), но не в каждом мин (Это я наблюдал в отладчике и как CRO)
2.Это exicuting ISR каждые 0,1 мс (прибл.) insted в 1 мс.

My Q это есть ли другие, необходимые для предустановки, что она работает правильно?

Спасибо и уважением,

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Очень веселый" border="0" />Nikhilesh

 
Привет nikhileshsawarkar

Что частоты Вы используете?

Вы очистка флага прерывания?Если нет, то вы получите повторить прервать, как только вы выйдете из ISR.

Regards ...Эрудит

 
Понял дорогая!
Я не был посредничества флаг прерывания (TF2) в ИСР.
Теперь он начал работать,
Thanx: D
Nikhilesh

 
Может somone пожалуйста, скажи мне, что цель ", используя 1" в линию "timer2_isr () прервать 5 с использованием 1"

 

Welcome to EDABoard.com

Sponsor

Back
Top