![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
![]()
Жаль, никто не может помочь
![]() |
![]() |
![]() |
![]() |
#12 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Цитата:
Узел получил сигнал, обработал, передал дальше. Цитата:
Как всегда в рекурсии возможно неотслеживаемое программно бесконечное блуждание сигнала (зависание программы!). Другой способ. Для узла вводится состояние "готов к передаче" (все входные параметры известны а выходные посчитаны). В цикле пробегаем по всем узлам. Если он уже готов, то пропускаем его обработку Если входы еще не готовы - тоже пропускаем И наконец если его входы готовы, то считаем и взводим состояние готовность. Повторяем ЭТОТ цикл ДО готовности ВСЕХ узлов. Для защиты от зависания (зацикливания) в каждом цикле просмотра(вычисления) готовности считаем число узлов сменивших свое состояние на готов. Как только число таких узлов =0(!!!) и в тоже время еще не все узлы переведены в готовность, в то ЭТО СИГНАЛ, что программа готова уйти в бесконечный цикл и НАДО срочно принимать меры (завершать этот повтор циклов!!!).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 31.10.2014 в 11:35. |
||
![]() |
![]() |
![]() |
#13 | ||
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
![]() Цитата:
evg_m, предложенные способы являются альтернативой тому способу, которым делаю я, возможно даже лучшей, но проблему не решают. Если взглянуть на вторую картинку, которую я приводил ранее, с источник D идет нулевой сигнал, с левого транзистора тоже идет нулевой сигнал и пока все нормально. Но как только я меняю сигнал на источнике D на единичный, то он встречается с нулевым сигналом, который все еще идет с транзистора и получается не понятно какой в итоге сигнал получается на проводе. Вся проблема из-за обратной связи. Есть вариант при смене сигнала обнулять всю схему и запускать прохождение сигналов заново, однако в этом случае не будут работать схемы с триггерами, которые запоминают предыдущее состояние. |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите понять прохождение исключений llyDbg | Dimka-novitsek | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 14.09.2014 16:36 |
Прохождение лабиринта (волновой алгоритм) | Alexander_A | Общие вопросы C/C++ | 9 | 30.10.2011 19:52 |
резонанс в электрической цепи | foxted | Помощь студентам | 3 | 25.12.2010 05:14 |
прохождение практики | radikayupov1710 | Помощь студентам | 0 | 18.04.2010 17:39 |
Прохождение подземного лабиринта Джаффара | МаксимNEWProgramm | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 12.04.2008 19:52 |