roboforum.ru

Технический форум по робототехнике.

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

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

Карлсон » 31 янв 2006, 01:46

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

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

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

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

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

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

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

Все можно. Только надо отключать оптимизацию. Компилер делает так чтоб работало быстро и весило мало.

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 !

======

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

Карлсон » 31 янв 2006, 14:46

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

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

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

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

avr123.nm.ru » 31 янв 2006, 15:58

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


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

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

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

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

avr123.nm.ru » 31 янв 2006, 16:01

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

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


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

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

======

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

=DeaD= » 31 янв 2006, 21:55

2Карслон, avr123: Что за склоки про курс? Несерьезно :!:

toshas » 26 апр 2006, 22:28

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

-= Александр =- » 27 апр 2006, 02:36

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

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.

toshas » 27 апр 2006, 20:03

спасибо, дело было в том, что мк работал на частоте в 4 раза ниже предполагаемой, соответственно задержки были выше ожидаемых


cron
Rambler\'s Top100 Mail.ru counter