Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Грот
15 / 15 / 2
Регистрация: 08.02.2013
Сообщений: 198
1

Временная задержка в циклах

10.06.2016, 11:01. Просмотров 799. Ответов 7
Метки нет (Все метки)

Для чего в бесконечных циклах делают временную задержку?
Например:

C
1
2
3
4
While(1){
     porta = portb;
     _dalay_ms(10);
}
Чем чревато выполнение цикла без задержки? Если экономией ресурсов, то каких? Если например произойдет прерывание, то оно само основной код цикла приостоновит на нужное ей время. Не уж то ли оперативная память стирается от быстрого чтения - записи???
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2016, 11:01
Ответы с готовыми решениями:

Временная задержка
Вопрос такой. Есть 2 объекта TTrackBar. При измении одного ползунка, второй должен переходить в...

Точная временная задержка
Появилась необходимость задать в программе точную временную задержку 1 мс., которая была бы...

Временная задержка в цикле
Здарова,нужно сделать задержку в цикле for для отрисовки трапеции,которая двигается вдоль линии....

Короткая временная задержка (микросекунды)
Здравствуйте, люди добрые! Подскажите пожалуйста как реализовать временную задержку на 50...

Временная задержка (без Sleep)
Всем привет. У меня проблема - не знаю как создать временную задержку. while(p<290) {...

7
Витальич
1277 / 1183 / 175
Регистрация: 02.12.2013
Сообщений: 4,886
10.06.2016, 11:22 2
Цитата Сообщение от Грот Посмотреть сообщение
Чем чревато выполнение цикла без задержки?
только логикой программы
Цитата Сообщение от Грот Посмотреть сообщение
Не уж то ли оперативная память стирается от быстрого чтения - записи???
ОЗУ нет, а у флеша ограничено число записей
1
pyzhman
873 / 518 / 76
Регистрация: 15.05.2012
Сообщений: 3,006
10.06.2016, 11:45 3
Цитата Сообщение от Витальич Посмотреть сообщение
логикой программы
Я бы сказал логикой писавшего программу.
1
Onkel
21 / 21 / 1
Регистрация: 15.04.2016
Сообщений: 36
10.06.2016, 19:51 4
ну пример не очень примерный, и таких длительных задержек лучше избегать, в мк всегда можно работать по прерываниям завершения процесса (прием байта, посылки байта, завершение оцифровки...), так что обычно задержки - следствие незнания и неумения написать нормальный код, но иногда задержки нужны- когда мы точно знаем время процесса (например, записи байта куда - то по spi), когда мы не можем получить сигнал (прерывание , например) об окончании процесса. Если мы пишем в пзу (ну 24 lc ...) строку и в течении 10 мс не должны писать туда еще, а мк вообще делать нечего кроме как писать туда в пзу. Но по хорошему конечно надо бы таймер запустить, 10 мс молотить что нам нужно и по таймеру вернуться к записи.
0
10.06.2016, 19:51
pyzhman
873 / 518 / 76
Регистрация: 15.05.2012
Сообщений: 3,006
11.06.2016, 07:06 5
Всё зависит от конкретной задачи. В том числе использовать таймер (что за фанатизм совать его туда, где он как собаке пятая нога) или программную задержку. Вышеприведенный код можно объяснить тем, что автор программы хочет использовать "устаканивание" сигнала на выходном порту (или -е, для меня загадка по сию пору). Хотя согласно даташита этого времени хватает заглаза.
0
Грот
15 / 15 / 2
Регистрация: 08.02.2013
Сообщений: 198
17.06.2016, 23:22  [ТС] 6
Мне нужно было сделать логическое и на мк без прерываний. Например pb0, pb1 входы, а pc7 выход. Максимальной частоты добиться не надо было, просто стало интересно если считывать входы , обрабатывать и результат выдовать на выход без задержек, как бы не дискретное чтобы было...
0
Витальич
1277 / 1183 / 175
Регистрация: 02.12.2013
Сообщений: 4,886
17.06.2016, 23:31 7
Есть понятие "основанной цикл" обычно я рассчитываю мин и мах время его его Выполнение (кнопки, мигание светодиодов итд) другими словами Всё, что не сильно зависит от от времени исполнения сажаю на вирт. таймер, остальное на прерывание таймера.
0
ValeryS
Модератор
7966 / 5935 / 785
Регистрация: 14.02.2011
Сообщений: 20,420
Завершенные тесты: 1
18.06.2016, 09:34 8
Цитата Сообщение от Грот Посмотреть сообщение
если считывать входы , обрабатывать и результат выдовать на выход без задержек,
без задержек не получится, даже жесткая логика работает с задержками
тут весь фокус в том что нужно рассчитать эту задержку, и быть уверенным чтобы она была постоянная
Цитата Сообщение от Грот Посмотреть сообщение
как бы не дискретное чтобы было...
выще не понял, как это цифровой сигнал может быть не дискретным?
0
18.06.2016, 09:34
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2016, 09:34

Большая временная задержка при загрузке win7
Последние 4 дня мой комп грузится в замедленном режиме. 1. При включение компа происходит...

Временная задержка, исполнение кода один раз за интервал времени
Всем привет! Программа имитирующую работу высотомера бомбы. Бамба падает с высоты Н, которая...

Вывод окна "Свойства" и временная задержка кода
Всем привет, У меня такая задача. Пользователь вызывает в программе окно 'Свойства' нажатием на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.