реклама на сайте
подробности

 
 
> Интересная функция задержки, Вопрос по ассемблеру
Reboot_s
сообщение Aug 25 2006, 12:26
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 9-05-05
Пользователь №: 4 855



Есть вот такая интересная функция задержки времени.
Сначала задается:
ldi AL, 125
Потом вызывается сама функция:
dly:
mov _Stm1, AL
tst _Stm1
brne PC-1
ret
При кварце в 10 МГц задержка выходит примерно в 500 мс.
Вопрос - как это работает, а именно, что постепенно обнуляет регистр _Stm1?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение Aug 25 2006, 13:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Я бы сказал, что функция не интересная, а наоборот - тупая. Зачем использовать прерывание, если все равно выхода из функции не будет пока переменная _Stm1 не обнулится?


--------------------
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 26 2006, 19:49
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(prottoss @ Aug 25 2006, 16:09) *
Я бы сказал, что функция не интересная, а наоборот - тупая. Зачем использовать прерывание, если все равно выхода из функции не будет пока переменная _Stm1 не обнулится?


Не следует делать скоропалительных выводов. smile.gif
Я иногда примерно так делал для формирования точных но больших временных интервалов. Скорее всего данное прерывание используется совсем не для этого. А это, так сказать, лишь мелкий довесок, - одна команда. Как правило когда используются в программе различные временные метки, то я их все формирую в одном прерывании по таймеру. Чем меньше в программе прерываний (учитывая отсутствие ранжирования), тем проще работать.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 26 2006, 21:25
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(SasaVitebsk @ Aug 27 2006, 03:49) *
Цитата(prottoss @ Aug 25 2006, 16:09) *
Я бы сказал, что функция не интересная, а наоборот - тупая. Зачем использовать прерывание, если все равно выхода из функции не будет пока переменная _Stm1 не обнулится?

Не следует делать скоропалительных выводов. smile.gif
Я иногда примерно так делал для формирования точных но больших временных интервалов. Скорее всего данное прерывание используется совсем не для этого. А это, так сказать, лишь мелкий довесок, - одна команда. Как правило когда используются в программе различные временные метки, то я их все формирую в одном прерывании по таймеру. Чем меньше в программе прерываний (учитывая отсутствие ранжирования), тем проще работать.
Я не хочу здесь начинать спорить о стилях программирования, я просто высказал мнение по поводу приведенного выше кода, и мнение мое однозначно.

Цитата(SasaVitebsk @ Aug 27 2006, 03:49) *
Чем меньше в программе прерываний (учитывая отсутствие ранжирования), тем проще работать.
))))))))))))))))))))))))))Нонсенс...


--------------------
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 27 2006, 22:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(prottoss @ Aug 27 2006, 00:25) *
Цитата(SasaVitebsk @ Aug 27 2006, 03:49) *
Цитата(prottoss @ Aug 25 2006, 16:09) *
Я бы сказал, что функция не интересная, а наоборот - тупая. Зачем использовать прерывание, если все равно выхода из функции не будет пока переменная _Stm1 не обнулится?

Не следует делать скоропалительных выводов. smile.gif
Я иногда примерно так делал для формирования точных но больших временных интервалов. Скорее всего данное прерывание используется совсем не для этого. А это, так сказать, лишь мелкий довесок, - одна команда. Как правило когда используются в программе различные временные метки, то я их все формирую в одном прерывании по таймеру. Чем меньше в программе прерываний (учитывая отсутствие ранжирования), тем проще работать.
Я не хочу здесь начинать спорить о стилях программирования, я просто высказал мнение по поводу приведенного выше кода, и мнение мое однозначно.

Цитата(SasaVitebsk @ Aug 27 2006, 03:49) *
Чем меньше в программе прерываний (учитывая отсутствие ранжирования), тем проще работать.
))))))))))))))))))))))))))Нонсенс...


В данном случае я имел ввиду "дублирующих или бесполезных прерываний". Зачем плодить 10 прерываний от таймера для формирования различных задержек?

Представьте себе что Вы обрабатываете канал информации. И недопустимы слишком большие задержки на обработку этого канала. У меня не более 250мкс. Вам надо кроме этого канала обработать прерывание от последовательного порта и сформировать следующие задержки: 1cек, 0.1сек, 20мс, 0.25сек, 8мс. При этом по некоторым из задержек приходится одновременно отсчитывать несколько интервалов.
Вы как по каждому интервалу свой таймер заводите?

Извините, но я избегаю ответов типа "однозначно" или "нонсенс". Это сродни "этого не может быть потому что этого я не могу себе представить". Я вовсе не защищаю автора той программы. Я её не видел. Но программирование мне нравится за то, что любую задачу можно решить десятком способов! И я отнюдь не уверен что Ваш, - самый правильный.

Сообщение отредактировал SasaVitebsk - Aug 27 2006, 22:43
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Reboot_s   Интересная функция задержки   Aug 25 2006, 12:26
- - vet   Очевидно, прерывание; предположительно, по таймеру...   Aug 25 2006, 12:37
|- - Reboot_s   Цитата(vet @ Aug 25 2006, 16:37) Очевидно...   Aug 25 2006, 13:13
|||- - CDT   Цитата(prottoss @ Aug 25 2006, 16:09) Я б...   Aug 28 2006, 05:17
||- - defunct   Цитата(prottoss @ Aug 27 2006, 00:25) Цит...   Aug 28 2006, 12:01
||- - prottoss   Цитата(defunct @ Aug 28 2006, 20:01) ну я...   Aug 28 2006, 15:45
|- - singlskv   Цитата(prottoss @ Aug 25 2006, 17:09) Я б...   Aug 28 2006, 18:39
- - vet   prottoss к чему ирония? разумеется, измерение отре...   Aug 28 2006, 15:57
|- - prottoss   Цитата(vet @ Aug 28 2006, 23:57) prottoss...   Aug 28 2006, 18:58
|- - singlskv   Цитата(prottoss @ Aug 28 2006, 22:58) Кто...   Aug 28 2006, 19:14
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 03:14) Угу...   Aug 28 2006, 19:56
||- - SasaVitebsk   Цитата(prottoss @ Aug 28 2006, 22:56) Пот...   Aug 28 2006, 20:07
|||- - prottoss   Цитата(SasaVitebsk @ Aug 29 2006, 04:07) ...   Aug 28 2006, 21:21
||- - singlskv   Цитата(prottoss @ Aug 28 2006, 23:56) Пот...   Aug 28 2006, 20:49
||- - SasaVitebsk   Цитата(singlskv @ Aug 28 2006, 23:49) Пот...   Aug 28 2006, 21:09
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 04:49) Пот...   Aug 28 2006, 21:12
||- - singlskv   Цитата(prottoss @ Aug 29 2006, 01:12) Цит...   Aug 28 2006, 21:39
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 05:39) При...   Aug 28 2006, 21:47
||- - singlskv   Цитата(prottoss @ Aug 29 2006, 01:47) Цит...   Aug 28 2006, 22:03
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 06:03) Мож...   Aug 28 2006, 22:16
||- - singlskv   Цитата(prottoss @ Aug 29 2006, 02:16) Цит...   Aug 28 2006, 22:29
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 06:29) Око...   Aug 28 2006, 22:44
||- - singlskv   Цитата(prottoss @ Aug 29 2006, 02:44) Цит...   Aug 28 2006, 23:10
||- - SasaVitebsk   Цитата(prottoss @ Aug 29 2006, 01:44) Цит...   Aug 30 2006, 17:42
||- - prottoss   Цитата(SasaVitebsk @ Aug 31 2006, 01:42) ...   Aug 30 2006, 18:12
||- - defunct   Цитата(prottoss @ Aug 30 2006, 21:12) Цит...   Aug 31 2006, 13:17
|- - defunct   Цитата(prottoss @ Aug 28 2006, 21:58) Цит...   Aug 29 2006, 13:29
|- - prottoss   Цитата(defunct @ Aug 29 2006, 21:29) типи...   Aug 29 2006, 14:01
|- - defunct   Цитата(prottoss @ Aug 29 2006, 17:01) Над...   Aug 29 2006, 14:48
|- - prottoss   Цитата(defunct @ Aug 29 2006, 22:48) Вы э...   Aug 29 2006, 15:43
|- - defunct   Цитата(prottoss @ Aug 29 2006, 18:43) Цит...   Aug 29 2006, 18:25
|- - prottoss   Цитата(defunct @ Aug 30 2006, 02:25) PS: ...   Aug 29 2006, 18:39
|- - defunct   Цитата(prottoss @ Aug 29 2006, 21:39) Цит...   Aug 29 2006, 20:50
- - prottoss   Я предложу, но объясните мне, непонятливому, зачем...   Aug 28 2006, 20:42
|- - SasaVitebsk   Цитата(prottoss @ Aug 28 2006, 23:42) Я п...   Aug 28 2006, 21:18
- - vet   prottoss Ваш вариант хуже в смысле точности, и нам...   Aug 29 2006, 05:51
|- - prottoss   Цитата(vet @ Aug 29 2006, 13:51) prottoss...   Aug 29 2006, 06:09
- - vet   Опять не понимаете. Таймер тикает независимо от пр...   Aug 29 2006, 07:09
- - GetSmart   prottoss Если вы такой умный насколько и нагловаты...   Aug 29 2006, 16:16
|- - prottoss   Цитата(GetSmart @ Aug 30 2006, 00:16) pro...   Aug 29 2006, 16:47
- - GetSmart   Ну то есть задание вы провалили. Приходите через г...   Aug 29 2006, 16:58
- - SasaVitebsk   Специально использую класический смайл так как он ...   Aug 30 2006, 20:20
- - prottoss   2 SasaVitebsk: объяснения об улыбках, ухмылках, и ...   Aug 31 2006, 14:57
- - defunct   LMD   Aug 31 2006, 23:10
- - SpiritDance   А дык чего вы хотите от Пиннокио? Ж)))   Sep 1 2006, 05:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.05794 секунд с 7
ELECTRONIX ©2004-2016