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

 
 
> Интересная функция задержки, Вопрос по ассемблеру
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
Ответов
vet
сообщение Aug 28 2006, 15:57
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



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


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 28 2006, 18:58
Сообщение #3


Гуру
******

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



Цитата(vet @ Aug 28 2006, 23:57) *
prottoss
к чему ирония? разумеется, измерение отрезка времени таймером точнее, чем с помощью цикла, неизвестно на сколько времени продлённого разнообразными возникающими по ходу работы прерываниями.
Так и я о том же, а уважаемый defunct пытается доказать обратное

Цитата(singlskv @ Aug 29 2006, 02:39) *
Интересно, а если у нас вся работа происходит в прерываниях, то что мы будем
делать, в то время пока не произошло интересуещее нас событие (ИМХО, ковырять в носу в
каком-нибудь пустом цикле smile.gif ).
Кто то ковыряет в носу, а кто то спокойно спит)))

Сообщение отредактировал prottoss - Aug 28 2006, 19:00


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 28 2006, 19:14
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Aug 28 2006, 22:58) *
Кто то ковыряет в носу, а кто то спокойно спит)))

Угу, а если после наступления события нам необходимо очень оперативно отреагировать ?
Типа, реалтайм какой-нибудь, а событие такое что выход из sleep не прикрутить ?
Дальше "спокойно спим". smile.gif
Уважаемый prottoss, если Вы умеете делать выводы о коде на основании
5-6 команд на ассемблере, то вероятно вы выбрали не ту профессию, возможно Вас ждет
большой успех в области ясновидения.

P.S. без обид пожалуйста smile.gif
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 28 2006, 19:56
Сообщение #5


Гуру
******

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



Цитата(singlskv @ Aug 29 2006, 03:14) *
Угу, а если после наступления события нам необходимо очень оперативно отреагировать ?
Типа, реалтайм какой-нибудь, а событие такое что выход из sleep не прикрутить ?
Дальше "спокойно спим". smile.gif
Уважаемый prottoss, если Вы умеете делать выводы о коде на основании
5-6 команд на ассемблере, то вероятно вы выбрали не ту профессию, возможно Вас ждет
большой успех в области ясновидения.
P.S. без обид пожалуйста smile.gif
Что Вы, какие обиды) Я просто стараюсь не обращать внимание на глупые реплики подобные вашим... Я всего лишь сказал, что не вижу смысла делать задержку на прерывании, если выхода из функции все равно нет! Раз уж все накинулись на меня скопом) давайте найдем истину). Вот обсуждаемый код:

Код
Сначала задается:
ldi AL, 125
Потом вызывается сама функция:
dly:
mov _Stm1, AL
tst _Stm1
brne PC-1
ret


Потоки, работающие по прерываниям и так отработают свое.. О какой точности идет речь? Между tst _Stm1 и brne PC-1 может возникнуть прерывание, которое сведет всю вашу точность на нет. И, наконец, можете описать, или придумать, хотя бы одну ситуацию, где нельзя прикрутить sleep хотя бы в режиме idle?

Сообщение отредактировал prottoss - Aug 28 2006, 19:58


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 28 2006, 20:49
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Aug 28 2006, 23:56) *
Потоки, работающие по прерываниям и так отработают свое.. О какой точности идет речь? Между tst _Stm1 и brne PC-1 может возникнуть прерывание, которое сведет всю вашу точность на нет.

Потоки отработали свое, и например сохранили метку времени в регистре ICR, будем ждать
когда ее кто-нибудь испортит, или обработаем как можно быстрее ?
prottoss все, кто спорит здесь с Вами, имеют в виду всего лишь то, что
такой код вполне имеет право на существование, а Вы утверждаете, "никогда".
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 28 2006, 21:12
Сообщение #7


Гуру
******

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



Цитата(singlskv @ Aug 29 2006, 04:49) *
Потоки отработали свое, и например сохранили метку времени в регистре ICR, будем ждать
когда ее кто-нибудь испортит, или обработаем как можно быстрее ?
prottoss все, кто спорит здесь с Вами, имеют в виду всего лишь то, что
такой код вполне имеет право на существование, а Вы утверждаете, "никогда".
Это где же я говорил "никогда"? Любой код, пусть даже самый абсурдный имеет право на существование...


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 28 2006, 21:39
Сообщение #8


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Aug 29 2006, 01:12) *
Цитата(singlskv @ Aug 29 2006, 04:49) *
Потоки отработали свое, и например сохранили метку времени в регистре ICR, будем ждать
когда ее кто-нибудь испортит, или обработаем как можно быстрее ?
prottoss все, кто спорит здесь с Вами, имеют в виду всего лишь то, что
такой код вполне имеет право на существование, а Вы утверждаете, "никогда".
Это где же я говорил "никогда"? Любой код, пусть даже самый абсурдный имеет право на существование...

Пример:
1. Timer1 считает время (по прерываниям)
2. INT0 и Timer0 ловят код(старт и стоп) по RF каналу. (то есть должны работать
все время)
3. Основной цикл выводит текущий результат на LCD (причем без всяких там HD4XXX).
4. Когда код от RF "поймали" наполовину, перестаем выводить на LCD и
ждем(в цикле похожем на цикл автора топика ) когда получим код полностью.
5. фиксируем время.

Это, с некоторыми упрощениями логика работы некоторого девайса.
Все это работает при 1Мгц тактовой (ну типа устройство было "батарейным" -
надо было экономить).
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 28 2006, 21:47
Сообщение #9


Гуру
******

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



Цитата(singlskv @ Aug 29 2006, 05:39) *
Пример:
1. Timer1 считает время (по прерываниям)
2. INT0 и Timer0 ловят код(старт и стоп) по RF каналу. (то есть должны работать
все время)
3. Основной цикл выводит текущий результат на LCD (причем без всяких там HD4XXX).
4. Когда код от RF "поймали" наполовину, перестаем выводить на LCD и
ждем(в цикле похожем на цикл автора топика ) когда получим код полностью.
5. фиксируем время.

Это, с некоторыми упрощениями логика работы некоторого девайса.
Все это работает при 1Мгц тактовой (ну типа устройство было "батарейным" -
надо было экономить).
А при чем здесь задержки через задний проход?


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 28 2006, 22:03
Сообщение #10


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Aug 29 2006, 01:47) *
Цитата(singlskv @ Aug 29 2006, 05:39) *
Пример:
1. Timer1 считает время (по прерываниям)
2. INT0 и Timer0 ловят код(старт и стоп) по RF каналу. (то есть должны работать
все время)
3. Основной цикл выводит текущий результат на LCD (причем без всяких там HD4XXX).
4. Когда код от RF "поймали" наполовину, перестаем выводить на LCD и
ждем(в цикле похожем на цикл автора топика ) когда получим код полностью.
5. фиксируем время.

Это, с некоторыми упрощениями логика работы некоторого девайса.
Все это работает при 1Мгц тактовой (ну типа устройство было "батарейным" -
надо было экономить).
А при чем здесь задержки через задний проход?

Можно чуть-чуть по подробнее что Вы имеете ввиду ?
Цитата
перестаем выводить на LCD и
ждем(в цикле похожем на цикл автора топика ) когда получим код полностью.

автор топика всего лишь предположил что это был таймер...

Цитата
А при чем здесь задержки через задний проход?

Или может быть просто хотите пообщаться с модераторами ? blink.gif
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 28 2006, 22:16
Сообщение #11


Гуру
******

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



Цитата(singlskv @ Aug 29 2006, 06:03) *
Можно чуть-чуть по подробнее что Вы имеете ввиду ?
Я и имею ввиду задержки на прерываниях, если так можно выразится об этих задержках
Цитата(singlskv @ Aug 29 2006, 06:03) *
Или может быть просто хотите пообщаться с модераторами ? blink.gif
OFFTOP: Что вы нервничаете так? Сначала оскорбляете обидными словами, что мол работу меняй) Теперь модераторами пугаете)

Сообщение отредактировал prottoss - Aug 28 2006, 22:17


--------------------
Go to the top of the page
 
+Quote Post
singlskv
сообщение Aug 28 2006, 22:29
Сообщение #12


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(prottoss @ Aug 29 2006, 02:16) *
Цитата(singlskv @ Aug 29 2006, 06:03) *

Можно чуть-чуть по подробнее что Вы имеете ввиду ?
Я и имею ввиду задержки на прерываниях, если так можно выразится об этих задержках
Цитата(singlskv @ Aug 29 2006, 06:03) *
Или может быть просто хотите пообщаться с модераторами ? blink.gif
OFFTOP: Что вы нервничаете так? Сначала оскорбляете обидными словами, что мол работу меняй) Теперь модераторами пугаете)

Окорблять не собирался (смайликов поставил).
Просто создалось впечатление, что Вы высказались не очень ТОЧНО(это ключевое слово),
а теперь боитесь упасть "лицом в грязь", ну и от сюда все проблеммы.
А может быть просто нужно "уточнить", что Вы имели ввиду ?
ИМХО, это куда как более достойное поведение (Все мы иногда ощибаемся,
или говорим так, что другим нас не понять).
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 28 2006, 22:44
Сообщение #13


Гуру
******

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



Цитата(singlskv @ Aug 29 2006, 06:29) *
Окорблять не собирался (смайликов поставил).
Ага, обижать человека с улыбкой, по Вашему это нормально?Ладно, проехали...
Цитата(singlskv @ Aug 29 2006, 06:29) *
Просто создалось впечатление, что Вы высказались не очень ТОЧНО(это ключевое слово),а теперь боитесь упасть "лицом в грязь", ну и от сюда все проблеммы.А может быть просто нужно "уточнить", что Вы имели ввиду ? ИМХО, это куда как более достойное поведение (Все мы иногда ощибаемся, или говорим так, что другим нас не понять).
За все, мною сказанное выше в топике я отвечаю, и я не боюсь упасть в грязь лицом) Вы тут чего то наговорили непонятного, по моему даже Вам самому) Я всего лишь сказал, что
Цитата
Я бы сказал, что функция не интересная, а наоборот - тупая. Зачем использовать прерывание, если все равно выхода из функции не будет пока переменная _Stm1 не обнулится?
и от своего мнения не отказываюсь. Так же выше в топике я привел свой вариант выполнения задержек, чем он хуже? Вы еще ни одного реального довода мне не привели, зато впечатлениями обо мне делитесь. Может быть Вам пора работу сменить, психологом например заделаться, а? Огорчает, что замусорили топик перепалкою, это и меня касается(

Сообщение отредактировал prottoss - Aug 28 2006, 22:47


--------------------
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
- - prottoss   Я бы сказал, что функция не интересная, а наоборот...   Aug 25 2006, 13:09
|- - SasaVitebsk   Цитата(prottoss @ Aug 25 2006, 16:09) Я б...   Aug 26 2006, 19:49
||- - prottoss   Цитата(SasaVitebsk @ Aug 27 2006, 03:49) ...   Aug 26 2006, 21:25
||- - SasaVitebsk   Цитата(prottoss @ Aug 27 2006, 00:25) Цит...   Aug 27 2006, 22:41
|||- - 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
||- - SasaVitebsk   Цитата(prottoss @ Aug 28 2006, 22:56) Пот...   Aug 28 2006, 20:07
|||- - prottoss   Цитата(SasaVitebsk @ Aug 29 2006, 04:07) ...   Aug 28 2006, 21:21
||- - SasaVitebsk   Цитата(singlskv @ Aug 28 2006, 23:49) Пот...   Aug 28 2006, 21:09
||- - 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 Текстовая версия Сейчас: 9th August 2025 - 03:36
Рейтинг@Mail.ru


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