Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Atmel AVR Studio 5

Непрочитано 12.03.2012, 18:37  
wellcom
Временная регистрация
 
Регистрация: 25.09.2008
Сообщений: 95
Сказал спасибо: 39
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
wellcom на пути к лучшему
По умолчанию Re: Atmel AVR Studio 5

Сообщение от kison Посмотреть сообщение
В любом случае аргумент _delay_ms должен быть константой известной на этапе компиляции.
А если станет надобность програмно выичслять и устанавливать время задержки, как тогда быть?
Реклама:
wellcom вне форума  
Непрочитано 12.03.2012, 18:44  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Atmel AVR Studio 5

Сообщение от wellcom Посмотреть сообщение
А если станет надобность програмно выичслять и устанавливать время задержки, как тогда быть?
Ну то, что выше позволяет менять задержку. Просто шаг изменения - миллисекунда.
А вообще для задержек придумали таймеры и прерывания от них.
kison вне форума  
Непрочитано 12.03.2012, 22:23  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Atmel AVR Studio 5

Сообщение от kison Посмотреть сообщение
Ну то, что выше позволяет менять задержку. Просто шаг изменения - миллисекунда.
А вообще для задержек придумали таймеры и прерывания от них.
Ну вот, как я и ожидал, пришел Кисон и все поставил на свои места
Действительно, не учел, что переменную еще надо обработать, а это временнЫе затраты. А посему - в библиотеке только работа с константой.
Не знал и не знаю CV, предупреждал ведь Я в стареньком IARe все на таймерах строю. Как блокирующие, так и неблокирующие задержки.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 13.03.2012, 10:44  
wellcom
Временная регистрация
 
Регистрация: 25.09.2008
Сообщений: 95
Сказал спасибо: 39
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
wellcom на пути к лучшему
По умолчанию Re: Atmel AVR Studio 5

Сообщение от ut1wpr Посмотреть сообщение
Я в стареньком IARe все на таймерах строю. Как блокирующие, так и неблокирующие задержки.
Не могли бы помочь примерчиком начинающему программисту, как на таймере строить? А если таймеры нужно использовать под другие задачи?
wellcom вне форума  
Непрочитано 13.03.2012, 14:59  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Atmel AVR Studio 5

Сообщение от wellcom Посмотреть сообщение
Не могли бы помочь примерчиком начинающему программисту, как на таймере строить? А если таймеры нужно использовать под другие задачи?
Один таймер в системе нужно почти всегда выделять под системные тики.
Дискретность тиков выбирать между наименьшим "торможением" системы и наилучшей дискретностью.
Желательно приблизить к минимальному значению ожидаемых задержек.
Грубо говоря (как вариант, готовых решений не даю, бесполезно, задачи и системы разные):
Настроить системный таймер на 1 прерывание в выбранный интервал времени (скажем 1 мсек).
В теле обработчика прерывания от системного таймера вводите декремент переменной (обязательно volatile!, размерность определите задачей) по условию неравенства ее нулю.
Сколько надо таких переменных и их размерности решайте сами.
Далее вариант блокирующего таймера (таймера, останавливающего все остальные процессы, как наиболее простой для понимания вариант):
Пишите функцию, получающую значение задержки из любой точки программы.
Присваиваете значение задержки переменной внутри таймера.
Зависаете в цикле до обнуления этой переменной.
Выходите из функции.
Неблокирующие задержки строятся весьма разнообразно, с применением различных механизмов (семафоры, стеки и прочее). В основном это может понадобится для работы с несколькими потоками задач, т.к. не будет необходимости "висеть" в ожидании окончания отсчета тиков. Но нужно будет предусматривать механизм сообщения в поток о прекращении отсчета. Освойте пока блокирующую систему. Остальное по вкусу.
Готовый "примерчик" привести почти невозможно. Поймите механизм и наваяйте под свои условия.
И не забывайте, что это лишь один из способов. Сколько программистов - столько и решений.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
wellcom (13.03.2012)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На WinAVR + AVR Studio c CVAVR Vetal-soft Embedd С 87 03.03.2013 20:31
Связка Proteus и AVR Studio 4 wws63 Proteus 1 10.02.2011 02:26
Вопрос по AVR Studio (Adress na) Langalec Микроконтроллеры, АЦП, память и т.д 8 17.01.2011 20:21
Си-шный компилятор в AVR Studio меняет последовательность команд svv11 Микроконтроллеры, АЦП, память и т.д 29 21.03.2010 05:47
AVR Studio и AT89S51 - нужна помощь roobeeaz Микроконтроллеры, АЦП, память и т.д 5 13.03.2010 18:34


Часовой пояс GMT +4, время: 03:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.