Я работаю над заданием PL C, используя программное обеспечение для проектирования Do-More и симулятор. В теоретической задаче коробки трех случайных цветов подаются на конвейерную ленту. Они проходят мимо датчика, который определяет их цвет и активирует разные регистры сдвига для каждого цветового блока. Когда ящик достигает конца своего регистра, ворота закрываются и толкают ящик на рампу. Датчик выхода увеличивает счетчик, и программа больше не заботится об этом поле.
Моя проблема связана со сдвиговым регистром. Он включается и запускается, но, похоже, делает совершенно случайные шаги. Я установил его на «диапазон битов», чтобы я мог видеть, как загораются разные выходы во время работы. Прямо сейчас кнопка часов активируется всякий раз, когда $ UT C отличается от предыдущего сканирования, так что это может иметь какое-то отношение к этому. Я хотел бы знать, есть ли способ контролировать размер шагов, которые он предпринимает. Я хотел использовать однократный поток мощности, но я не могу использовать его в этой ситуации.
изображение кода. Первая ветвь регистра сдвига проверяет, активирован ли датчик, выход замкнут, и случайное число равно целому числу. Второй этап использует изменение в $ UT C и спрашивает, закрыты ли ворота. Регистр сбрасывается, когда он достигает максимального значения.
Спасибо