Вход

Просмотр полной версии : Хитрые имена переменных.



ZPavel
28.02.2012, 00:04
Завел несколько глобальных битовых переменных. Из них некоторые получили названия: AVAR_SMAZKI, DVIG_SHPINDEL, RAZR_PODACH. При запуске эмуляции выяснилось, что происходит самопроизвольная установка в единицу битов AVAR_SMAZKI и RAZR_PODACH. А на DVIG_SHPINDEL вообще ругается INVALID:16#02. Пришлось их переименовать в: AVA_SMAZKI, DVIGA_SHPINDEL и RAZRE_PODACH. К чему бы это. Я читал про зарезервированные имена, но здесь же только их фрагменты.

Yegor
28.02.2012, 05:41
Думаю, связано это не с именами, а с кривым управлением набором этих переменных. Например, в проектных файлах можно обнаружить давно удалённые глобальные идентификаторы.

ZPavel
28.02.2012, 11:46
Ввел еще несколько регистров UINT для опроса модулей расширения по маске, и опять та же канитель.
REGOUT_SHKAF:UINT:=0;
REGINT1_PULT:UINT:=0
REGINT2_PULT:UINT:=0;
REGOUT_PULT:UINT:=0

При эмуляции они инициализируются значениями 4,5,6,7. Если им менять названия, то значения тоже меняются.

Так же у меня не происходит передача значения в функциональный блок MASK_INPUT.
Выкладываю проект, подскажите, кто, чем может начинающему.

lara197a
28.02.2012, 14:22
У Вас нет пояснений в программе. Никто не знает чего Вы хотите.
UINT Вам зачем?
Работайте с INT или WORD.

swerder
28.02.2012, 15:01
REGOUT_SHKAF:UINT:=0;
REGINT1_PULT:UINT:=0
REGINT2_PULT:UINT:=0;
REGOUT_PULT:UINT:=0

При эмуляции они инициализируются значениями 4,5,6,7.

учитывая то, что 3 из 4х только лишь объявлены в программе и более нигде не используются, нулевые их значения при запущенной эмуляции не выглядят странным фактом. где вы взяли 4567?

ZPavel
28.02.2012, 18:27
Пишу программу дальше, такой странной инициализации уже не наблюдаю, теперь все правильно, вижу нули. Странно как-то все это.

Yegor
29.02.2012, 06:09
Вы не одиноки: http://www.owen.ru/forum/showthread.php?t=12123