Стек это разновидность очереди - первый пришел ,первый вышел ... Поступаемые данные передвигаются от входа к выходу очереди ,это как регистр сдвига ,только там двигаются биты ,а тут регистры ..
Стек это разновидность очереди - первый пришел ,первый вышел ... Поступаемые данные передвигаются от входа к выходу очереди ,это как регистр сдвига ,только там двигаются биты ,а тут регистры ..
Последний раз редактировалось rovki; 13.11.2018 в 21:23.
электронщик до мозга костей и не только
rovki . Я немного представляю как это работает. Вы помните мою задачу? Считать количество включений и наработку за последние сутки Вот такой макрос мне дали (не вы). И сказали обращаться если с входами не понятно. Вот мне не понятно. А вам? Объясните что куда?
2018-11-13_21-43-20.png
Откройте макрос для редактирования, там подсказки, диапазон записываемых, читаемых разрядов(ячеек) 0-31, короче, сверху вниз: IN - вход стека(данных); SELW - выбор ячейки(разряда) для записи(0-31); SHL - сдвиг влево по фронту импульса, в сторону более старшего разряда(ячейки), самый старший - "31"; SHR - сдвиг вправо по фронту импульса, в сторону более младшего разряда(ячейки), самый младший - "0"; SELR - выбор ячейки(разряда) для чтения, подоваемый на выход Q(0-31).
И мне кажется не надо каждому разряду(ячейке) приделывать отдельный выход, достаточно пройтись по всем нужным разрядам(ячейкам) и суммировать их значения например с помощью сумматора, всё!
Последний раз редактировалось Сергей0308; 13.11.2018 в 22:32.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Не совсем понял зачем нужно менять направление сдвига ??? Главное есть очередь ,а куда она загибается не имеет значение , главное не перепутать вход с выходом(начало ,конец)
Ну и произвольный доступ к записи ячеек в стек ,то же не к чему в данной задачи , а то это уже не очередь получиться а, "Я ТУТ СТОЯЛ" !!!
Последний раз редактировалось rovki; 13.11.2018 в 23:02.
электронщик до мозга костей и не только
Если не нужно - не меняйте! Этот макрос можно использовать и как стек и как матрицу памяти, короче, как кому надо, так и делайте, вот допустим овен продаёт реверсивный счётчик СИ8, мне не нужен реверсивный счет, я использую счётчик СИ8 как нереверсивный, не вижу здесь проблем!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Я себе как то представляю это так. 24х разрядный стек (в моем случае). На вход данных со счетчика идут значения. Но не записываются, пока на второй вход не подастся единица. Раз в час такая единица приходит и значение записываются в нижнюю ячейку. Соответственно счетчик сбрасывается. Через час новые значения пишутся опять в нижнюю. Предыдущие поднимаются выше. Так за 24 часа весь стек заполнен. И процесс продолжается. Старые стираются. Хранятся 24 последних значения. Так? Так же раз в час надо их просуммировать и записать в переменную. Каким образом? Сумматор 24х разрядный надо где то взять и прикрутить?
Примерно так я бы и сделал, вот Вам сумматор в проекте, как на картинке только целочисленный:
Сумматор.PNG
Приделывать макросу выходы всех разрядов и их суммировать - по-моему нет смысла и усложнит все наверно на порядок!
Последний раз редактировалось Сергей0308; 13.11.2018 в 23:24.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.