IPB

Здравствуйте, гость ( Вход | Регистрация )

> FX2N-128 работа с выходами, что-то похожее на индексы
Antiscer
сообщение 25.01.2019 - 20:49
Сообщение #1


Читатель
*

Группа: Пользователи
Сообщений: 16
Регистрация: 25.01.2019
Пользователь №: 11114



Здравствуйте.
Волею судеб пришлось начать разбираться с данным типом контроллеров. Возник вопрос, а какой подход можно применить для перебора выходов включая необходимые.
Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход.
Метод прописать все варианты мне известен.
Почитав документацию, я встретил индексные регистры, но был удивлен, что их нельзя применять в FX2N на выходах (в документации об этом ни слова).
Какие еще есть приемы работы с выходами по абсолютному числу?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
VAL_64
сообщение 25.01.2019 - 22:38
Сообщение #2


Гигант мысли
****

Группа: Пользователи
Сообщений: 253
Регистрация: 21.01.2017
Пользователь №: 10799



Цитата(Antiscer @ 25.01.2019 - 21:49) *
Здравствуйте.
Волею судеб пришлось начать разбираться с данным типом контроллеров. Возник вопрос, а какой подход можно применить для перебора выходов включая необходимые.
Задача простая - на входы Х0-Х7 приходит двоичное восьмибитное число и мне нужно включить выход с тем номером, на которое подается на вход.
Метод прописать все варианты мне известен.
Почитав документацию, я встретил индексные регистры, но был удивлен, что их нельзя применять в FX2N на выходах (в документации об этом ни слова).
Какие еще есть приемы работы с выходами по абсолютному числу?

Ссылка
Биты объединяются в слова только группами по 4, то есть К2Х0 в данном случае необходимо.
Ненужные биты можно замаскировать.
Например: WAND K2X0 H1F K2M0, если хотите иметь результат в слове битов K2M0, либо WAND K2X0 H1F D0, если в регистре D0.
Константа-маска содержит нули в позициях битов, которые нужно игнорировать.

Входы, которые нужно игнорировать, маскируются лишь при копировании группы в слово-получатель.
Ничто не мешает использовать их для других целей.

Что касается выходов, там процедура немного сложнее.
Для передачи пяти младших битов из D0 на Y0..Y4, не затрагиваяY5..Y7, необходимо выполнить две операции:
WAND K2Y0 HE0 D1
WOR D0 D1 K2Y0
Первая инструкция запоминает во вспомогательном регистре D1 состояние битов Y5..Y7.
Константа-маска содержит единицы только в этих позициях.
Вторая инструкция дописывает биты, которыми нужно управлять, и отправляет все слово на выходы.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Antiscer
сообщение 26.01.2019 - 10:06
Сообщение #3


Читатель
*

Группа: Пользователи
Сообщений: 16
Регистрация: 25.01.2019
Пользователь №: 11114



Цитата(VAL_64 @ 25.01.2019 - 22:38) *
Ссылка
Биты объединяются в слова только группами по 4, то есть К2Х0 в данном случае необходимо.
Ненужные биты можно замаскировать.
Например: WAND K2X0 H1F K2M0, если хотите иметь результат в слове битов K2M0, либо WAND K2X0 H1F D0, если в регистре D0.
Константа-маска содержит нули в позициях битов, которые нужно игнорировать.....


да, я пробежался по всем темам этой ветки форума, видел эту тему, но это не то что было в вопросу, хотя в программе я буду использовать эти инструкции и подходы.
дело в том, что существующая программа написана в лоб, т.е. в ней описаны все возможные варианты, таких контроллеров 18 и все отличаются программами - мне нужно унифицировать, так как они все выполняют одно и то же.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 29.04.2024 - 01:23