Вылетают порты при использовании кнопок с внутренним подтягиванием
- Войдите на сайт для отправки комментариев
Вс, 04/09/2016 - 09:59
Коллеги, добрый день.
Подскажите пож-та, из-за чего могут вытелать порты, к которым подключены кнопки внутренним сподтягиванием?
Очень странно выглядит - все работает нормально первые неск часов. Потом кнопка начинает "самонажиматься". Осцилограф показывает рандомную пилу на ноге. Причем, внешним резисором уже не подтягивается - все та же пила =(
уже 3 платы ушли в помойку - природа явления не понятна. Происходит вне зависимости от того, нажимать ли на кнопку вовсе.
в качестве защиты от статики, установить стабилитрон на 5.6 в на каждую кнопку, или 2 диода vcc - pin, pin - gnd
Спасибо за быстрый ответ!
Так и планировал, просто думаю - костыль, как остальные справляются?
Вдруг я чтото накосяячил именно с использованием?=)
PS "Умершие" порты нормально работают как out
Спасибо за быстрый ответ!
Так и планировал, просто думаю - костыль, как остальные справляются?
Вдруг я чтото накосяячил именно с использованием?=)
PS "Умершие" порты нормально работают как out
ни схему включения, ни скетча никто не видит, как можно что-то говорить о косяках? :)))
Да там и рисовать особо нечего. Подключены к меге 3 устройства (LCD, часы и блок реле с опторазвязкой) и 3 кнопки.
Никаких доп компонент (резисторов диодов итп).
Все работает кроме кнопок
ссылка на яндексдиск https://yadi.sk/i/H3REwZicukgyS
а на пины в сетапе указываете что они входы, pinmode(pin, input) ?
да, конечно:
1
void
InitSwitches()
2
{
3
//DDRB &= ~((1<<BTN1PIN) | (1<<BTN2PIN) | (1<<BTN3PIN)); // за ненадобностью закомментировано
4
PORTB |= (1<<BTN1PIN) | (1<<BTN2PIN) | (1<<BTN3PIN);
// | (1<<BTN4PIN);
5
PCICR |= (1<<PCIE0);
6
PCMSK0 |= (1<<PCINT0)| (1<<PCINT1) | (1<<PCINT2);
7
}
Использую Atmel Studio
то что за ненадобностью закомментировано и есть то что нужно :)
Properties of Pins Configured as INPUT
Arduino (Atmega) pins default to inputs, so they don't need to be explicitly declared as inputs with pinMode() when you're using them as inputs.
https://www.arduino.cc/en/Tutorial/DigitalPins
Да и не меняется ничего. Вот если наоборот, сделать out - то появляется стабильные 5v на "мертвом" пине.
Когда он in - рандомные срабатывания. внешним пуллапом не подтягивается.
Может не в кнопках дело? ЧТо еще может дать такой эффект?
я не знаю что происходит с регистрами, но пока не пропишешь что это вход, начинает глючить, раз 5 спотыкался на этом
просто думаю - костыль, как остальные справляются?
никак не справляются - ничего подобного у других не наблюдается
Фото платы/макетки может помочь в решении проблемы, также как все это добро питается?