пробовал и так. не получается. посмотрел на сайтах - правильный у меня синтаксис, а в чем проблема не известно. вобщем в конечном устройстве будет только по одному параметру сравнивать условие. в чем дело - останетсяч загадкой
По моему тут одно из двух
1) Либо делаете проверку сперва пина 6, а в нем уже пина 7
2) копируете состояние всех пинов в переменную. Накладываете маску и затем обрабатываете оба бита
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
kvark85 писал(а):не работает как надо такое условие:
if (PINB.6==0 && PINB.7==0) {...}
А как надо чтоб работало? По идее, условие истинно когда оба PIN нулевые. Когда хотя бы один PIN равен единице - условие ложно. Может, ошибка у Вас логическая? Например нужно "ИЛИ" а не "И"? или "И-НЕ"? Опишите конкретно, что надо реализовать. Запись вроде правильная, но я бы "для верности" добавил бы скобки:
FUZZY_ писал(а):а так должно работать во всех компиляторах
А с чего такая уверенность, что не работает? Компилятор генерит код, который уж и выполняется в железе. А точно ли в железе ( или хотя бы в симуляторе ) этот переход не работает при выполнении условий? Правильный ли код генерится компилятором - легко проверить анализом файла прошивки .HEX
Кстати, у меня была история, которую я так и до сих пор не понял. На Атмеге 48 не выполняется один фрагмент, хотя выполняться просто обязан, в симуляторе все ОК. Поменял МК, думал, что убился - однаково. Заменил ОДНУ команду абсолютно эквивалентной парой команд ( внимательнейшим образом проверил установку битов N,Z,V,C - одно и то же !) -- и вуаля : журчит как надо. Написал Атмелям, выслал код - говорят, не сумели поймать эффект. Надо было им все устройство высылать