Здравствуйте! В работающем проекте на ПР200 не выполняется (или неправильно выполняется) часть, выложенная на скрине.
Может кто подсказать, почему эта часть может не выполняться?Screenshot_8.png
Здравствуйте! В работающем проекте на ПР200 не выполняется (или неправильно выполняется) часть, выложенная на скрине.
Может кто подсказать, почему эта часть может не выполняться?Screenshot_8.png
Предполагалось, что пока из "внешнего мира" в регистр iFlags_552 ничего не записывается, в этих 4х булевых переменных (энергонезависимых) сохраняются изначальные значения . Когда извне приходят данные, эти переменные должны измениться в соответствии с полученными значениями. В реале, несмотря на то , что в регистр "iFlags_552" данные поступили, в переменные записались нули. Изначально в булевых переменных были 1. Почему такое происходит - не пойму.
Скорее всего это стандартная для OWL фишка: если что-то нигде НЕ используется, то оно НЕ работает.
Я могу тупить, но ведь если i552 не задана, то она и будет равна нулю. А дальше, пока в iFlags_552 тоже ноль, блок SEL запишет в флаги ноль из i552.
Что вообще нужно получить? Может быть, можно сделать это более простым способом?
Если нужно отследить изменение флагов - так может хранить предыдущее значение iFlags_552, сравнивать его с текущим, и, если они не равны, выдавать флаг "Значение изменилось", а биты доставать всегда?
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab
Точно! 1exan, спасибо за свежий взгляд! Линия связи действительно "потерялась".
Последний раз редактировалось Юра54; 11.09.2024 в 12:07. Причина: Ответ не тому адресату
Пожалуйста!
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab