Например TDA7294

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

Текущее время: Пн дек 15, 2025 07:25:46

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Нет реакции МК на кнопку
СообщениеДобавлено: Вт мар 12, 2013 09:32:19 
Открыл глаза

Карма: 2
Рейтинг сообщений: 7
Зарегистрирован: Вт мар 12, 2013 09:13:16
Сообщений: 78
Рейтинг сообщения: 0
Здравствуйте уважаемые коты :)
Начал изучение контроллеров. Пишу прогу которая по нажатию кнопки переключает лампочки

Код:
#include <tiny2313.h>
#include <delay.h>

void main (void){
DDRB=0b11111111;
PORTB=0b11111111;

DDRD=0b00000000;
PORTD=0b00000011;

 if (PIND.1 == 1) {

 PORTB.1 = 0;   // вкл светодиод
 delay_ms(50000); // пауза

};

 if (PIND.1 == 0) {

 PORTB.0 = 0;   // вкл светодиод
 delay_ms(50000); // пауза

};
}
Появились вопросы, ответа на которые не могу найти в инете.
1. Нужно ли при установке порта на выход писать PORTB=0b11111111; или резюки подключаются при настройке порта на вход?
2. Почему МК не реагирует на кнопку? Горит только светодиод подключенный к PORTB.1
Спасибо


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нет реакции МК на кнопку
СообщениеДобавлено: Вт мар 12, 2013 14:38:12 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
delay_ms(50000); // пауза 50 секунд так должно быть?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нет реакции МК на кнопку
СообщениеДобавлено: Вт мар 12, 2013 14:51:12 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 05, 2012 22:23:32
Сообщений: 126
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
lakec писал(а):
1. Нужно ли при установке порта на выход писать PORTB=0b11111111; или резюки подключаются при настройке порта на вход?

Нужно. Порт по умолчанию включается на вход без резисторов

lakec писал(а):
2. Почему МК не реагирует на кнопку? Горит только светодиод подключенный к PORTB.1


А что конкретно должна делать ваша программа?
Переключать 2 светодиода по 2 кнопкам?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нет реакции МК на кнопку
СообщениеДобавлено: Вт мар 12, 2013 17:52:06 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7014
Откуда: Ижевск
Рейтинг сообщения: 0
У вас однократно опрашиваются кнопки и по результату устанавливаются выходы. Попробуйте перед включением питания удерживать кнопки - убедитесь. Правда эти 50 сек :)) Чтобы постоянно держать управление надо бы циклически опрашивать кнопки, т.е. приментить хотя бы
Код:
while(1)
{
опрос кнопки
    {
    делаем светодиод
    }
опрос кнопки
    {
    делаем светодиод
    }
}

_________________
Docendo discimus


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Нет реакции МК на кнопку
СообщениеДобавлено: Вт мар 12, 2013 21:17:51 
Открыл глаза

Карма: 2
Рейтинг сообщений: 7
Зарегистрирован: Вт мар 12, 2013 09:13:16
Сообщений: 78
Рейтинг сообщения: 0
С задержкой погорячился :)) да и действительно в цикл надо бы загнать опрос. Видимо из-за этого были проблемы
Код:
#include <tiny2313.h>
#include <delay.h>

void main (void){
DDRB=0b11111111;
PORTB=0b11111111;
DDRD=0b00000000;
PORTD=0b00000011;

  while (1) {
  if (PIND.1 == 1) {
 PORTB.1 = 0;   // вкл светодиод 1
 PORTB.0 = 1;   // выкл светодиод 0
  delay_ms(5); // пауза
};

   
 if (PIND.1 == 0) {
 PORTB.0 = 0;   // вкл светодиод 0
 PORTB.1 = 1;   // выкл светодиод 1
 delay_ms(5); // пауза
};
};
}
так работает)) Поставил след. задачу. Есть одна кнопка и 3 (количество не важно) светодиода. Сделать так, чтобы при нажатии на кнопку один светик включался, другие не горят. И так поочередно (типа светофора, только переключаются кнопкой). Как такое сделать если у кнопки только два состояния (0 и 1)?
ЗЫ.Посоветуйте пожалуйста книгу или сайт с примерами программирования на си именно для микроконтроллеров. Те, что я находил слишком сложны для новичков.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нет реакции МК на кнопку
СообщениеДобавлено: Вт мар 12, 2013 21:24:42 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
http://chipenable.ru/index.php/programm ... l?start=60


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нет реакции МК на кнопку
СообщениеДобавлено: Вт мар 12, 2013 22:17:36 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4594
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
viewtopic.php?f=20&t=79801


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

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


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

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


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

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


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