Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать задержку в программе (не nop)? 
:(
    Опции темы
Xenia
Дата 24.4.2006, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2006
Где: Москва

Репутация: нет
Всего: нет



Подскажите как сделать задержку на 1 сек,  так что бы дествие программы задерживалось . Например мне говорили что можно читать память или переносить содержимое из одного регистра в другой. 
PM MAIL ICQ   Вверх
makwen
Дата 24.4.2006, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 9.11.2005
Где: Киев

Репутация: нет
Всего: 1



Используй таймер или можешь просчитать, сколько времени затрачивает процессор на выполнение одной операции, и потом создаешь цикл с нужным количеством операций! Но второй способ не очень удобен, поскольку на разных машинах будет разное времяsmile 
Вообще так делается в микроконтроллерах....
Так, что лучше используй таймер!!!
 
PM MAIL   Вверх
Xenia
Дата 24.4.2006, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2006
Где: Москва

Репутация: нет
Всего: нет



К примеру
Вот такая программа(зажигание диода по кнопке)

ORG 8000H
METKA1:
MOV C,P1.4     
nop             
MOV ACC.0,C      
nop
JB ACC.0,LED1   
nop
setb P1.2       
LED1:
CLR P1.2                
 ajmp METKA1          
END

Как здесь использовать timer? Вообще-то никогода не сталкивалась с задержкой...Помогите с кодом
 
PM MAIL ICQ   Вверх
makwen
Дата 24.4.2006, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 9.11.2005
Где: Киев

Репутация: нет
Всего: 1



если это микроконтроллер(МК), то лучше использовать второй способ! Скажи, какой у тебя МК? и какой кварц стоит? 
PM MAIL   Вверх
makwen
Дата 25.4.2006, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 9.11.2005
Где: Киев

Репутация: нет
Всего: 1



приведу пример:
у меня МК AT89C5131
я знаю, что он 8 разрядный и для выполнения одной 1 инструкции нужно 6 тактов. Кварц у меня 24Мгц. 
24/8=3Мгц
3/6=0,5Мгц
это говорит о том, что на выполнение 1 одной инструкции( mov acc,00h) нужно 0,5мкс. -> на выполнение 2 инструкций нужно 1мкс->
2 000 000  инструкций нужно 1 с. Пример приведу на С 
(надеюсь, сможешь перевести на асмsmile)
for(i=0;i<2000;i++)
for(i=0;i<1000;i++);

делаешь, как процедуру и вызываешь в своей программе.  
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1741 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.