Заголовок сообщения: МК Атмега8 не реагирует на нажатие кнопок
Добавлено: Сб янв 21, 2017 15:07:51
Первый раз сказал Мяу!
Зарегистрирован: Вс мар 08, 2015 20:32:35 Сообщений: 32
Рейтинг сообщения:0
Подскажите пожалуйста. Написал тестовую прошивку в CVAVR. К мк подключены 2 кнопки (порт D1 и D7) и светодиоды к оставшимся портам. Светодиоды горят все (работают как надо), а на кнопки ни как не реагирует. Пробовал кнопку на плюс и наминус кидать с подтягиваюшим резистом и без. Спойлер#define led13 PORTD.5 #define led14 PORTD.6 #define led15 PORTB.0 #define led16 PORTB.2 #define led17 PORTB.1 #define led18 PORTB.3 #define led19 PORTB.4 #define led20 PORTB.5
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
При включении кнопки: По схеме общий плюс (один вывод кнопки на плюс, второй на пин МК, один вывод резистора на пин МК, второй на минус). Активный сигнал - единица.
Код:
#define KEY_1 0 #define KEY_1_PIN PIND
if (KEY_1_PIN & (1<<KEY_1) == 1) // if (KEY_1_PIN & (1<<KEY_1)) // аналогично // действие, если кнопка нажата.
if (KEY_1_PIN & (1<<KEY_1) == 0) //if (!(KEY_1_PIN & (1<<KEY_1))) // аналогично // действие, если кнопка отжата.
По схеме общий минус (один вывод кнопки на минус, второй на пин МК, один вывод резистора на пин МК, второй на плюс питания). Активный сигнал - ноль.
Код:
if (KEY_1_PIN & (1<<KEY_1) == 1) // if (KEY_1_PIN & (1<<KEY_1)) // аналогично // действие, если кнопка отжата.
if (KEY_1_PIN & (1<<KEY_1) == 0) //if (!(KEY_1_PIN & (1<<KEY_1))) // аналогично // действие, если кнопка нажата.
При включении кнопки: По схеме общий плюс (один вывод кнопки на плюс, второй на пин МК, один вывод резистора на пин МК, второй на минус). Активный сигнал - единица.
Код:
#define KEY_1 0 #define KEY_1_PIN PIND
if (KEY_1_PIN & (1<<KEY_1) == 1) // if (KEY_1_PIN & (1<<KEY_1)) // аналогично // действие, если кнопка нажата.
if (KEY_1_PIN & (1<<KEY_1) == 0) //if (!(KEY_1_PIN & (1<<KEY_1))) // аналогично // действие, если кнопка отжата.
Товарищ на кодвижне пишет, там не нужно заморачиваться с битовыми операциями.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения