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