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

 
 
> Изменение периода таймера внутри прерывания, можно ли?
//Nikson
сообщение Feb 1 2006, 16:11
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 26-01-06
Из: Минск, Беларусь
Пользователь №: 13 651



Можно ли изменять регистр периода таймера внутри процедуры обработки прерывания этого самого таймера ? "Тикнул" таймер, изменили период, снова тикнул - опять изменили. Вообще во время работы таймера его период менять можно. А именно в этом месте? Если нельзя, то как по-человеески организовать постоянно меняющиеся временные интервалы?

Сообщение отредактировал //Nikson - Feb 1 2006, 16:12
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VAI
сообщение Feb 15 2006, 08:41
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



у меня тоже тикает таймерное прерывание каждую милисекунду.
Что-бы избежать всех вышеперечисленных ошибок, сделал тики unsigned long
Код
volatile unsigned long tick_ms;        // милисекундные тики, хватит на 49 дней непрерывной работы прибора

void delay( unsigned long del )
{
  for ( del += tick_ms; del > tick_ms; )
  ;
}

Кстати микросекундные задержки (> 10 мкс) можно делать через Compare.
Через Compare у меня работает и 1-wire - общаюсь с DS1821

Сообщение отредактировал VAI - Feb 15 2006, 08:47


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post



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

 


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


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