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

 
 
> Команда delay, Keil uvision 8.02
VAHOO
сообщение Jan 19 2007, 21:16
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 22-09-05
Пользователь №: 8 834



Всем привет! подскажите пожалуйста чем можно заменить команда
delay в Keil uvision 8.02, например delay (5) 5ms,

заранее спасибо!


--------------------
Прошивка это душа микроконтроллера!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
evg123
сообщение Jan 25 2007, 13:00
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 353
Регистрация: 11-09-06
Из: Минск
Пользователь №: 20 282



Единственный рабочий способ это (как предложил gala) с использованием таймера.
Запускаем таймер в 16 битном режиме с перезагрузкой с частотой 1кГц.
В прерывании пишем код

TIMER++; //глобальная переменная (unsigned int), пользовательский таймер

Подпрограммо задержки будет иметь вид

void Delay(unsigned int T) // 1T = 1мс
{
unsigned int TF;

TF=TIMER;
while((TIMER-TF)<T);//сама задержка

}

Применение

Delay(100); // задержка на 100 мс

Все ninja.gif

Сообщение отредактировал evg123 - Jan 25 2007, 13:02
Go to the top of the page
 
+Quote Post
K_AV
сообщение Feb 15 2007, 15:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 492
Регистрация: 19-08-06
Пользователь №: 19 667



Цитата(evg123 @ Jan 25 2007, 12:00) *
Единственный рабочий способ это (как предложил gala) с использованием таймера.
Запускаем таймер в 16 битном режиме с перезагрузкой с частотой 1кГц.
В прерывании пишем код
TIMER++; //глобальная переменная (unsigned int), пользовательский таймер
Подпрограммо задержки будет иметь вид
void Delay(unsigned int T) // 1T = 1мс
{
unsigned int TF;
TF=TIMER;
while((TIMER-TF)<T);//сама задержка
}
Применение
Delay(100); // задержка на 100 мс
Все ninja.gif

Когда за время очередного выполнения продпрограммы DELAY произойдет переполнение переменной TIMER (а это будет случаться примерно раз в минуту), очередная задержка будет выполняться неожиданно долго? Или я чего-то не понял?
Ой, наверное, наоборот - задержка закончится неожиданно досрочно...

----------------------------------
Более позднее исправление:
Перепроверил - все работает нормально. Извиняюсь за невольную провокацию.
Go to the top of the page
 
+Quote Post



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

 


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


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