Задержки в программах.

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Задержки в программах.

Сообщение Карлсон » 31 янв 2006, 01:46

К примеру, возьмем задачу общения с обычным двусторчным lcd дисплейчиком.
по алгоритму я должен после некоторых команд делать задержку, чтобы контроллер дисплея точно все отработал.

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

у меня возникает резонный вопрос - почему такой геморрой?
почему, к примеру, нельзя просто в цикле попросить процессор о NOP?
т.е. если у нас есть частота процессора, то мы знаем соотв., за сколько долей секунды выполняется одна команда. NOP если я опять же правильно понял, занимает один такт. что мешает использовать?

пробовал поступить так, как написал - не получается. задержка просто не создается.
зачем нужны все эти котовасии с взять\положить число туда-то, чтобы получить нужную задержку.

надеюсь, кто-нибудь здесь поможет мне это уяснить :)
спасибо.

да, для товарища с курсом про МК - читал весь курс. не нашел.
Аватара пользователя
Карлсон
 
Сообщения: 114
Зарегистрирован: 30 окт 2005, 13:10
Откуда: Москва

Сообщение -= Александр =- » 31 янв 2006, 03:18

Все можно. Только надо отключать оптимизацию. Компилер делает так чтоб работало быстро и весило мало.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение avr123.nm.ru » 31 янв 2006, 11:03

Карлсон писал(а):я должен после некоторых команд делать задержку

надеюсь, кто-нибудь здесь поможет мне это уяснить :)

спасибо.

да, для товарища с курсом про МК - читал весь курс. не нашел.


Карлсон ! к чемуу такая бесстыдная КЛЕВЕТА на курс !

вы "читали весь курса" - вы в каком классе учитесь ???

а может у вас кодировка не верная и русских букв  не видно ?

=======

Я вот делаю так как написано на 1-й странице курса - т.е. поиском Windows ищу текст в файлах в папке где находится курс интересующее слова  - "пауз" и "задерж"

нахожу несколько файлов - в том числе файлы задачь ПЕРВОЙ !!! (как вы читали ? непонятно...) и пятой ...

mkkurs01.htm  (компилятор ICC)

mkkurs05.htm  (компилятор CodeVisionAVR)

открываешь эти файлы и ищешь тоже в их тексте ! а ЛУЧШЕ ПРОЧИТАЙ ИХ ТЕПЕРЬ ВНИМАТЕЛЬНО !

вот из mkkurs05.htm  (компилятор CodeVisionAVR)

........

#include <delay.h> // готовые функции задержек

....... читаем дальше :

delay_ms(20);  // задержка 20 мили секунд


=====   Этого нет в курсе ?  у меня глюки ??? ========

соответсвенно читая help - можно узнать что микросекунды делаются так
delay_us(268);  // задержка 268 микро секунд


Карлсон писал(а):
К примеру, возьмем задачу общения с обычным двусторчным lcd дисплейчиком.


Сделай наконец без гимора - т.е. так как написано в курсе!

Открой папку CVAVR\EXAMPLES компилятора CodeVisionAVR и
используй тамошние примеры работы с LCD !

======

такого совета тоже нет в курсе ???
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение Карлсон » 31 янв 2006, 14:46

как и ожидалось, единственный нормальный ответ от Александра.
спасибо, теперь понятно.

про курс, про задачи, про русский язык.
давайте вы не будете меня учить, как мне следует читать ваш курс и какую кодировку мне ставить?
договорились?

меня НЕ интересуют встроенные функции компиляторов. меня интересует самостоятельная разработка подпрограммы задержки на энное кол-во секунд.

да, читать ваш курс слегка противно - слишком пестро, ярко и постоянные побуждения. кому надо - прочтет и все поймет.
да и переходили бы на протеус - в разы проще эмуляция.
Аватара пользователя
Карлсон
 
Сообщения: 114
Зарегистрирован: 30 окт 2005, 13:10
Откуда: Москва

Сообщение avr123.nm.ru » 31 янв 2006, 15:58

Карлсон писал(а):читать ваш курс слегка противно - слишком пестро, ярко и постоянные побуждения. .


дак я не заставляю - не читайте.

но зачем объявлять ТУТ что ВЫ ПРОЧИТАЛИ и не нашли там этого ?

Это или не заниние языка на котором он написан - это русский или вранье - я это указал вам.

А читать человека заставить не возможно по моему да и не к чему!
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение avr123.nm.ru » 31 янв 2006, 16:01

Карлсон писал(а):меня НЕ интересуют встроенные функции компиляторов.

меня интересует самостоятельная разработка подпрограммы задержки на энное кол-во секунд.


Вот вы и подтвердили что не можете даже прочитать то что вам написано чуть выше - я ж указал что в курсе 2 варианта - и как раз для ICC нет встроеных функций задержки !

в ICC это просто  написаная функция.

======

а вот в CodeVisionAVR  они есть встроеные.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение =DeaD= » 31 янв 2006, 21:55

2Карслон, avr123: Что за склоки про курс? Несерьезно :!:
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Сообщение toshas » 26 апр 2006, 22:28

как соотносится задержка (delay_ms()) с частотой работы контроллера ?
на меге 16, при 16Mhz delay_ms(65) совсем не соответствует 65мс
почему в примерах cvavr "THE AT90S8515 CLOCK FREQUENCY MUST BE 3.6864 MHz " ?
Аватара пользователя
toshas
 
Сообщения: 90
Зарегистрирован: 31 янв 2006, 14:37
Откуда: Москва

Сообщение -= Александр =- » 27 апр 2006, 02:36

Я уже не помню, там надо #define какой-то прописать чтоб под частоту все подогнать. В общем читай хелп, оно там написано. Или хедер в котором она лежит глянь.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение avr123.nm.ru » 27 апр 2006, 08:18

toshas писал(а):как соотносится задержка (delay_ms()) с частотой работы контроллера ?
на меге 16, при 16Mhz delay_ms(65) совсем не соответствует 65мс
почему в примерах cvavr "THE AT90S8515 CLOCK FREQUENCY MUST BE 3.6864 MHz " ?


задача 1.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение toshas » 27 апр 2006, 20:03

спасибо, дело было в том, что мк работал на частоте в 4 раза ниже предполагаемой, соответственно задержки были выше ожидаемых
Аватара пользователя
toshas
 
Сообщения: 90
Зарегистрирован: 31 янв 2006, 14:37
Откуда: Москва


Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29