реклама на сайте
подробности

 
 
> Проблема с таймером
Melnichiy
сообщение Jan 28 2008, 21:52
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 14-10-07
Из: Москва
Пользователь №: 31 341



Добрый вечер всем!
Ппроблема в следующем - надумал выставлять задержки с помощью таймера 1 (SiLabs C8051F005), но:
1) при переполнении счетчика не выставляется флаг переполнения 07.gif
2) предположительно причина связана со строкой "sjmp $" , т.к. если ее удалить хоть и получается что возвращаемся из подпрограммы раньше, чем истекает счет, но тогда прерывание происходит
Вот и сам кусок кода:

keydelay:
setb ET1 ;Разрешаю прерывание таймера
mov TH1,#0FFh
mov TL1,#0F4h
setb TR1 ;Включаю счет
sjmp $
ret ;Возврат из подпрограммы

по вектору прерывания таймера 1 находится команда "reti"
Встречался ли кто с подобной проблемой, помогите, пожалуйста!
Всем заранее спасибо!

Сообщение отредактировал Melnichiy - Jan 28 2008, 21:55
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Melnichiy
сообщение Jan 29 2008, 11:34
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 14-10-07
Из: Москва
Пользователь №: 31 341



Цитата(AndreyS @ Jan 29 2008, 01:19) *
Вы EA не возвели (разрешить перываниям работу).

И еще в обработчике таймера этого недостаточно (reti), надо как минимум перед выходом сбросить TF1 (в TCON).


В том то и дело что я ранее взвел EA.

Цитата(редактор @ Jan 29 2008, 08:26) *
Можно модернизировать программу и заменить sjmp$ на проверку бита и переход, тогда сброс флага необходим.


Сделал так и все отлично заработало.

Цитата(SALOME @ Jan 29 2008, 09:46) *
Надо еще глянуть на настройку режима работы таймера.


Думаю проблема была с настройкой T2 (T2CON) а именно биты TCLK и RCLK - в даташите написано что при значении 1 соответствующего бита переполнения T2 используются как CLOCK для УАРТ а если 0, то переполнения T1.
Всем спасибо за советы!

Сообщение отредактировал Melnichiy - Jan 29 2008, 11:35
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 02:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016