Почему в ФБ IO_a Вы комментируете?
В чем проявляется ненормальность?Код:// проверка на "иголки" светодиодов внешних - работа не нормальная
Даже если Вы передаете эти значения на внешние выхода K1..K4, то в конце программного цикла ПР точно так же (по-битно) выдает их на транзисторы.
Т.е. если предыдущее состояние было K1=1, K2=1, K3=1, K4=0 (десятичное 7), то при записи десятичной 8 пройдет несколько промежуточных состояний:
- K1=0, K2=1, K3=1, K4=0 -> 6
- K1=0, K2=0, K3=1, K4=0 -> 4
- K1=0, K2=0, K3=0, K4=0 -> 0
- K1=0, K2=0, K3=0, K4=1 -> 8
Вы можете попробовать обратиться к разработчикaм с просьбой, что если эти биты принадлежат одному регистру, производить запись всей маски одной командой.
Или добавить в схему регистр со схемой сравнения, которая будет стробировать запись в регистр с задержкой (так чтобы вывелись все биты на K1..K2).
OWEN_2.jpg
т.е. как только схема увидит, что какой-то бит меняется, запускает импульс с задержкой фронта (выждет время на изменение всех бит), после чего защелкнет новые данные.
Последний раз редактировалось EFrol; 13.11.2023 в 23:46.
Они одинаковые, это не общая блок-схема, а схема одного модуля.
Дополнительные входы на разъёме In1+ и In2+ потому и указаны.
Нет. Опять мимо.Лучше было делать твою махарайку на двух сдвиговых регистрах 74HC164. Понадобилось бы всего 2 дискретных выхода и никакой динамической индикации.
Время цикла ПР200 1мс, что растягивать на последовательную передачу не позволительная роскошь - кроме ДИНАМИЧЕСКОЙ индикации есть ещё и цифровые логические выходы.
Дополнительные входы на разъёме In1+ и In2+ потому и указаны.
Да и транзисторные были свободными.
Там был звук, но его перевели в расширитель выходов.
Надо думать ширше и глубже. (с)![]()
кто сказал, что время цикла 1 мс ? паспорт изделия или ваша программа?
Комменты - это признак хорошего тона в программировании.
Значит была такая необходимость, что не мешает программе.
Схемное решение переусложнено для данного варианта.В чем проявляется ненормальность?Код:// проверка на "иголки" светодиодов внешних - работа не нормальная
Даже если Вы передаете эти значения на внешние выхода K1..K4, то в конце программного цикла ПР точно так же (по-битно) выдает их на транзисторы.
Т.е. если предыдущее состояние было K1=1, K2=1, K3=1, K4=0 (десятичное 7), то при записи десятичной 8 пройдет несколько промежуточных состояний:
- K1=0, K2=1, K3=1, K4=0 -> 6
- K1=0, K2=0, K3=1, K4=0 -> 4
- K1=0, K2=0, K3=0, K4=0 -> 0
- K1=0, K2=0, K3=0, K4=1 -> 8
Вы можете попробовать обратиться к разработчикaм с просьбой, что если эти биты принадлежат одному регистру, производить запись всей маски одной командой.
Или добавить в схему регистр со схемой сравнения, которая будет стробировать запись в регистр с задержкой (так чтобы вывелись все биты на K1..K2).
OWEN_2.jpg
т.е. как только схема увидит, что какой-то бит меняется, запускает импульс с задержкой фронта (выждет время на изменение всех бит), после чего защелкнет новые данные.
По их информации последовательность следующая:производить запись всей маски одной командой
1. Читаются входы в регистр(ы)
2. Выполняется программа пользователя.
3. Выполняются служебные программы
- последовательный обмен
- вывод на индикацию
- клавиатура
- ещё чё нибудь
4. Записываются результаты в порты.
Это примерно 1 мс и есть.
Никак в процессе пользовательской программы не могут данные побитно писаться в порт.
ПавелП у меня таких коротких программ не бываетпо этому и удивился, что у вас 1 мс программа.
Вычисления программы влияют на цикл, 1мс это минимально возможно время, значит у вас там программы кот наплакал.
ForX:=10; (*начало *) ForJ:=10000; (* конец цикла *) // задать параметры
ForY:=Sek; ForY:=ForY+1; // увеличение по-секундно
For ForX := 0 to ForJ do ForY:=ForY+1; // выполнить цикл
// тут нужные вычисления
end_for KS4:=ForY; // вывести результат
Цикл длинной в 10000 тактов - задолбается котик плакать.
Понятно же, что эта индикация - часть модуля расширения.
Для этого и выведена на разъём адресация индикации.
Индикация показана отдельно для выявления глюка вывода из ПР200 на транзисторные выходы.
И никакая последовательная передача не заменит скорости параллельного вывода.
Ну кроме LVDS, конечно, но это специализировано.
Ещё раз:
Это схемное решение не для обсуждения схемотехники, а для выявления глюков.