Например TDA7294

Форум РадиоКот • Просмотр темы - МК Атмега8 не реагирует на нажатие кнопок
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 18:56:01

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: МК Атмега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

#define button1 PIND.7
#define button2 PIND.1

void fullLedDeactive ()
{
led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;led8=0;led9=0;led10=0;led11=0;led12=0;led13=0;led14=0;led15=0;led16=0;led17=0;led18=0;led19=0;led20=0;
}

void fullLedActive ()
{
led1=1;led2=1;led3=1;led4=1;led5=1;led6=1;led7=1;led8=1;led9=1;led10=1;led11=1;led12=1;led13=1;led14=1;led15=1;led16=1;led17=1;led18=1;led19=1;led20=1;
}

void main(void)
{
DDRB = 0b11111111;
DDRC = 0b1111111;
DDRD = 0b01111101;

PORTD.7 = 1;
PORTD.1 = 1;

while (1)
{
if (button1 == 0 & button2 != 0)
{
effect--;
if (effect < 0)
effect = 0;
}
else if (button1 != 0 & button2 == 0)
{
effect++;
if (effect > 2)
effect = 2;
}
else if (button1 == 0 & button2 == 0)
{
effect=2;
}
else
{
if (effect == 0)
{
fullLedActive();
}
if (effect == 1)
{
fullLedDeactive();
}
if (effect == 2)
{
fullLedActive();
delay_ms(100);
fullLedDeactive();
delay_ms(100);
}
}
}
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Сб янв 21, 2017 15:28:03 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Поглядите про & и &&.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Сб янв 21, 2017 15:31:02 
Первый раз сказал Мяу!

Зарегистрирован: Вс мар 08, 2015 20:32:35
Сообщений: 32
Рейтинг сообщения: 0
Z_h_e писал(а):
Поглядите про & и &&.


Пробовал дажет так if (button1 == 0), но тоже не реагирует


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Сб янв 21, 2017 17:58:49 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Вт фев 09, 2010 17:52:26
Сообщений: 417
Рейтинг сообщения: 0
Схему покажите. Похоже не хватает подтягивающего резистора.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Сб янв 21, 2017 19:19:53 
Первый раз сказал Мяу!

Зарегистрирован: Вс мар 08, 2015 20:32:35
Сообщений: 32
Рейтинг сообщения: 0
codenamehawk писал(а):
Схему покажите. Похоже не хватает подтягивающего резистора.

Собрано по этой схеме, подтягивающие резисторы стоят на 10к.
Изображение


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Сб янв 21, 2017 19:48:21 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
...

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Вс янв 22, 2017 13:48:31 
Мучитель микросхем

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Вт фев 09, 2010 17:52:26
Сообщений: 417
Рейтинг сообщения: 0
Сократите программу до одной кнопки и одного светодиода, должно работать.
Да и протеус справится с такой схемой.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Вс янв 22, 2017 17:34:36 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
При включении кнопки:
По схеме общий плюс (один вывод кнопки на плюс, второй на пин МК, один вывод резистора на пин МК, второй на минус). Активный сигнал - единица.
Код:
#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 set_bit(reg, bit)  reg |= (1<<(bit))    // Установка бита.
#define clr_bit(reg, bit)   reg &= (~(1<<(bit))) // Сброс бита.
#define switch_bit(reg, bit)  reg ^= (1<<(bit)) // Переключение бита.
//----------
#define check_bit(reg, bit) (reg & (1<<bit))    // Проверка бита.
//==================

//==================
//#define KEY1_PRESSED() ((KEYS1_PIN & (1<<BIT_KEY1) == 0)
//#define KEY1_UNPRESSED() ((KEYS1_PIN & (1<<BIT_KEY1) == 1)

#define Set_Is_Key_Esc_Pressed()   !(check_bit (KEY_ESC_PIN,   KEY_ESC))   // Low level.
#define Set_Is_Key_Enter_Pressed() !(check_bit (KEY_ENTER_PIN, KEY_ENTER)) // Low level.
#define Set_Is_Key_Minus_Pressed() !(check_bit (KEY_PLUS_PIN, KEY_MINUS))  // Low level.
#define Set_Is_Key_Plus_Pressed()  !(check_bit (KEY_MINUS_PIN, KEY_PLUS))  // Low level.

//#define Set_Is_Key_Esc_Pressed()   check_bit (KEY_ESC_PIN,   KEY_ESC)   // High level.
//#define Set_Is_Key_Enter_Pressed() check_bit (KEY_ENTER_PIN, KEY_ENTER) // High level.
//#define Set_Is_Key_Minus_Pressed() check_bit (KEY_PLUS_PIN, KEY_MINUS)  // High level.
//#define Set_Is_Key_Plus_Pressed()  check_bit (KEY_MINUS_PIN, KEY_PLUS)  // High level.

// При работе с буфером входов (расширение ввода-вывода):
// #define Set_Is_Key_Stop_Pressed()   check_bit (inputs_buf [0], KEY_STOP)
//==================


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Вс янв 22, 2017 18:22:22 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вс фев 20, 2011 21:05:17
Сообщений: 52
Рейтинг сообщения: 0
Demiurg писал(а):
При включении кнопки:
По схеме общий плюс (один вывод кнопки на плюс, второй на пин МК, один вывод резистора на пин МК, второй на минус). Активный сигнал - единица.
Код:
#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))) // аналогично
// действие, если кнопка отжата.


Товарищ на кодвижне пишет, там не нужно заморачиваться с битовыми операциями.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Вс янв 22, 2017 18:26:53 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
Я не писал на кодевижне, но не думаю, что там не скомпилируется этот код.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Вс янв 22, 2017 18:57:02 
Это не хвост, это антенна
Аватар пользователя

Карма: 8
Рейтинг сообщений: 193
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1441
Рейтинг сообщения: 0
я бы все-таки рекомендовал пользоваться такой платформо-зависимой экзотикой по минимуму.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: МК Атмега8 не реагирует на нажатие кнопок
СообщениеДобавлено: Вс янв 22, 2017 19:04:30 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
AVR-Studio, AVR Toolchain - компилируется без проблем.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y