Перейти к содержанию

Чтение Состояния Ножки. Что Делаю Не Так?


Orion-cxem

Рекомендуемые сообщения

Ребят, простите, наверное глупый мой вопрос. Я начинающий в микроконтроллерах, но голову сломал, понять никак не могу что делаю не так. В Proteus все работает, в железе никак. Микроконтроллер Atmega644P.

Иннициализирую порты так:

void init_ports(void) {

DDRB = 0b11111111;

DDRC = 0b00000000;

PORTC = 0b11111111;

}

В главном цикле хочу проверить состояние пятого пина порта C, и если там 0 (кнопка нажата), то зажечь светодиод на третьем пине порта B:

int main(void)

{

init_ports();

while(1) {

if(!(PINC & (1<<5))) PORTB |= (1<<3);

}

}

Кнопка повешена с RC цепочкой на землю. Светодиод с резистором 220Ом. При подаче питания светодиод на третьей ножке порта B загорается сразу же.

Т.е. программа думает, что кнопка уже нажата.

Заранее благодарю.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

10K резистор потом 0.01uF керамика и потом земля. Но даже, если кнопка вообще отключена, светодиод загорается.

P.s. Заранее благодарить не только прилично, но и необходимо.

Изменено пользователем Orion-cxem
Ссылка на комментарий
Поделиться на другие сайты

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

...резистор потом 0.01uF керамика и потом земля...

С этого момента поподробнее! Вы их последовательно соединили???

По всем вопросам в Скайп... sergey.boreysha

Ссылка на комментарий
Поделиться на другие сайты

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

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

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Это работа вашей RC-цепочки. У вас в программе светодиод можно только включить, а выключить нет. Вот при подаче питания RC-цепь при заряде конденсатора имитирует нажатие кнопки и зажигает светодиод.

Изменено пользователем Sergey-Ufa
Ссылка на комментарий
Поделиться на другие сайты

Параллельно кнопке. Т.е. земля с кнопки (если кнопка нажата) идет напрямую на ножку. Но к ножке также подключен резистор и конденсатор на землю. Как же объяснить почему светодиод зажигается даже если кнопка вместе с цепочками отключена вообще.

Изменено пользователем Orion-cxem
Ссылка на комментарий
Поделиться на другие сайты

Резистор тоже отключаете? Подтягивающий резистор на пине имеет сопротивление порядка 50-100 ком, а вы вход заземляете через 10 ком. Ну так это и есть постоянный лог.0.

Ссылка на комментарий
Поделиться на другие сайты

Мерял-перемерял 100 раз. На PC5, которая висит в воздухе, при включении МК 4.6В. Собрано все на макетке. Пробовал другие порты - то же самое. При этом, LCD 20x4 по 4-bit шине подключен и работает нормально.

Изменено пользователем Orion-cxem
Ссылка на комментарий
Поделиться на другие сайты

Нет схемы. Есть МК, прошитый кодом выше. На 3 пине порта B подключен светодиод через 220Ом. К 5 пину не подключено вообще ничего. При включении светодиод горит. В этом моя проблема.

В правильности прошивки не сомневаюсь. Т.к. если пишу простенькую мигалку светодиодом - все работает отлично. Проблема только тогда, когда пытаюсь настроить МК на работу с входящими сигналами.

Ссылка на комментарий
Поделиться на другие сайты

У меня похожая проблема Atmega8a. Помогает только, то что если меняешь порт кнопки на выход. То есть в твоем случае DDRB = 0b11111111;

DDRC = 0b11111111;

PORTC = 0b00000000;

Попробуй поменяй у тебя тоже после этого заработает?

Ссылка на комментарий
Поделиться на другие сайты

А если изменить код так

while(1) {
if(!(PINC & (1<<5))) {PORTB |= (1<<3);}
else{PORTB &=(~ (1<<3));}
}

Не помогает.

Есть вариант, Попробуй убери знак логического отрицания в выражени if(!(PINC & (1<<5))) PORTB |= (1<<3); , тоесть if(PINC & (1<<5)) PORTB |= (1<<3);

Не помогает, но диод не загорается при включении.

Ребят, объясните, в чем же проблема?

Ссылка на комментарий
Поделиться на другие сайты

Кусок ассемблерного файла из программы тс:

 9a: 35 99        sbic 0x06, 5 ; 6
 9c: fe cf        rjmp .-4       ; 0x9a <main+0x8>
 9e: 2b 9a        sbi 0x05, 3 ; 5
 a0: fc cf        rjmp .-8       ; 0x9a <main+0x8>

т.е. по программе всё красиво. Искать косяк в железе.

Я не раздаю удочки. Я продаю рыбу.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...