Здравствуйте! Подскажите прогу пишу на atmel studio 7 Для attiny13 Выставляю направления для порта B: DDRB = 0b00011100; B0 вход B1 вход B2 выход B3 выход B4 выход
B5 пин reset (ставлю 0) B6,B7,B8 Этих пинов нету (ВЫСТАВЛЯЮ 0 ЕСЛИ НЕ ТАК !ПОДСКАЖИТЕ!!) Выставляю подтяг. резисторы: PORTB |= 1<<0; PORTB |= 1<<1; ТЕПЕРЬ ВОПРОС!!! как запрашивать состояние пина B0 и B1 (если на них подключины кнопки)??? if (PINB == 0b00000001); ??? if (PINB == 0b00000010); ??? А если нажать 2 кнопки одновремено значение PINB будет 0b00000011?? Значит условие if (PINB == 0b00000001); не будет выполнено? Если можете подскажите как правильно запрашивать состояние PINов
CodeVisionAVR: if (PINB.0 == 1); ... if (PINB.1 == 1); ... ... if (PINB.0); ... if (PINB.1); ... ... if ( ! PINB.0); ... if ( ! PINB.1); ... ... if (PINB & 0b00000001); ... if (PINB & 0b00000010); ... ... и т.д.
мне так удобней if (PINB.0 == 1); ... if (PINB.1 == 1); ...
да, все эти сравнения с 0 и 1 в данном случае не нужны. Это намекает, что может быть и 2 и 3 и символ... сведение к булевым делает всё более однозначно читаемым.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Значит условие if (PINB == 0b00000001); не будет выполнено?
Даже если на других пинах будут не нули, то условие и тоже не будет выполнено. Издревле на языке Си принято проверять состояние отдельного бита (или группы бит) в байте через логическую операцию AND и получение её результата в виде false (=0) или true (не =0): if (port & PIN_MASK) { ... }, где port - содержимое регистра чтения порта, PIN_MASK - маска для проверяемых пинов, в которой единицы в позициях бита разрешают эти биты к проверке. Можно проверять как один бит, так и любую комбинацию битов. Результатом лог.операции будет либо 0 (false), когда в проверяемой позиции содержится 0. Либо отличное от 0 значение (true), когда в проверяемой позиции есть 1. Таким образом, условие if() не будет выполняться, если на проверяемом пине 0, и будет выполняться, когда на проверяемом пине 1.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Вовсе не обязательно! Организация кнопок может быть различной, срабатывание кнопки может быть как по лог.0 так и по лог.1, и даже через R-2R матрицу и АЦП. Тем более, что проверка бита на 0 отличается от проверки на 1 всего лишь инверсией маски. Штудируйте язык Си!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения