roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 май 2025, 15:10

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Задержки в программах.
СообщениеДобавлено: 31 янв 2006, 01:46 
Не в сети
Аватара пользователя

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

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

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

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 31 янв 2006, 03:18 
Не в сети
Мастер Самоделкин
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 31 янв 2006, 11:03 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Карлсон писал(а):
я должен после некоторых команд делать задержку

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

спасибо.

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


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

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

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

=======

Я вот делаю так как написано на 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 !

======

такого совета тоже нет в курсе ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 31 янв 2006, 14:46 
Не в сети
Аватара пользователя

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

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 31 янв 2006, 15:58 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Карлсон писал(а):
читать ваш курс слегка противно - слишком пестро, ярко и постоянные побуждения. .


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

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

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

А читать человека заставить не возможно по моему да и не к чему!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 31 янв 2006, 16:01 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Карлсон писал(а):
меня НЕ интересуют встроенные функции компиляторов.

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


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

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

======

а вот в CodeVisionAVR  они есть встроеные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 31 янв 2006, 21:55 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 апр 2006, 22:28 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 апр 2006, 02:36 
Не в сети
Мастер Самоделкин
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 апр 2006, 08:18 
Не в сети
отсылающий читать курс
Аватара пользователя

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


задача 1.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 апр 2006, 20:03 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 4 часа


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

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


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO