Attiny13. Проблема с кнопкой.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
within
Открыл глаза
Сообщения: 52
Зарегистрирован: Ср сен 02, 2009 21:39:06
Откуда: Николаев

Attiny13. Проблема с кнопкой.

Сообщение within »

Драсьте! Помогите плиз. Не получается сделать так, чтоб с помощью одной кнопки зажигать\гасить светодиод. Нажал - горит, нажал ещё - погас. Кнопка - PINB.3, светодиод PORTB.4. Пробовал так:
if ((PINB.3==0)&&(PORTB.4=1))
{PORTB.4=0;
delay_ms(200);}
if ((PINB.3==0)&&(PORTB.4=0))
{PORTB.4=1;}

Включает, но не выключает)
Очень жаль, когда люди упираются лбом в что-то, хотя это и не логично совсем. А свою логику не объясняют.
Реклама
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Attiny13. Проблема с кнопкой.

Сообщение a_skr »

или так ("==" вместо "="):

Код: Выделить всё

if ((PINB.3==0)&&(PORTB.4==1))
{PORTB.4=0; delay_ms(200);}
else if ((PINB.3==0)&&(PORTB.4==0))
{PORTB.4=1; delay_ms(200);}
или так:

Код: Выделить всё

if(PINB.3==0){PORTB.4 ^= 1; delay_ms(200);}
Реклама
Akphantom
Родился
Сообщения: 15
Зарегистрирован: Пт июн 01, 2012 08:14:06

Re: Attiny13. Проблема с кнопкой.

Сообщение Akphantom »

if(PINB.3==0) {
PORTB.4 = ~PINB.4;
delay_ms(200);
}
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Attiny13. Проблема с кнопкой.

Сообщение Engineer_Keen »

А если даташит очень внимательно почитать...

Код: Выделить всё

if(PINB.3==0) {
PINB.4 = 1;
delay_ms(200);
}
Реклама
Эиком - электронные компоненты и радиодетали
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Attiny13. Проблема с кнопкой.

Сообщение a_skr »

PORTB.4 = ~PORTB.4; правильнее :)
Реклама
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Attiny13. Проблема с кнопкой.

Сообщение a_skr »

Engineer_Keen писал(а):А если даташит очень внимательно почитать...

Код: Выделить всё

if(PINB.3==0) {
PINB.4 = 1;
delay_ms(200);
}
спасибо, не знал :-) , по крайне мере в меге8 этого нововведения нет.
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Attiny13. Проблема с кнопкой.

Сообщение Engineer_Keen »

Это в основном фишка тинек, хотя в 48-88 мегах тоже встречается.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Attiny13. Проблема с кнопкой.

Сообщение ploop »

Эта фишка новых серий. В классической восьмой нет, в 8А уже есть, если память не изменяет. В 48-88-168 есть во всех.
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

Re: Attiny13. Проблема с кнопкой.

Сообщение a_skr »

так что в плане переносимости не стоит так делать :)
Аватара пользователя
within
Открыл глаза
Сообщения: 52
Зарегистрирован: Ср сен 02, 2009 21:39:06
Откуда: Николаев

Re: Attiny13. Проблема с кнопкой.

Сообщение within »

Спасибо за оперативность) Бум пробовать)
Очень жаль, когда люди упираются лбом в что-то, хотя это и не логично совсем. А свою логику не объясняют.
Аватара пользователя
radiokot__
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Вс янв 15, 2012 19:58:40

Re: Attiny13. Проблема с кнопкой.

Сообщение radiokot__ »

Код: Выделить всё

#include <tiny13.h>
#include <delay.h>

#define kn_sel PINB.0
#define led PORTB.1

char mod;

void selekt()
  {   
      if (!kn_sel)
      { mod ^=1;
       do { } while(!kn_sel); 
       if (mod==1)
              led=1;
         else led=0;
      }     
  } 

void main(void)
{
{
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
 
PORTB=0x01;
DDRB=0x06;
}
 //mod=0; 

while (1)
  {
    selekt();
  }
}
Ни один домашний кот незнает что он домашний.
Аватара пользователя
allplayer
Открыл глаза
Сообщения: 72
Зарегистрирован: Вс апр 24, 2011 20:12:21

Re: Attiny13. Проблема с кнопкой.

Сообщение allplayer »

Даже лень читать всё, что написали. Загляни в датащий по этой микросхеме. В частности на I/O Ports.
Из личного опыта помню, что на порте Б нету аналогового сингала. На него можно вешать кнопки. А вот диоды надо на портА и то, не на все! :dont_know:
Купил лазерный принтер... Теперь осталось спаять машину времени и прислать себе принтер пораньше =D
Аватара пользователя
within
Открыл глаза
Сообщения: 52
Зарегистрирован: Ср сен 02, 2009 21:39:06
Откуда: Николаев

Re: Attiny13. Проблема с кнопкой.

Сообщение within »

Во–первых. Если не ошибаюсь, на любой порт можно и кнопки кидать и диоды подключать. Главное, правильно сконфигурировать)
Во–вторых, чувак, открой даташит. В Tiny13 нет порта А) Если лень читать, то не советуй. Тут не 40 страниц.
Очень жаль, когда люди упираются лбом в что-то, хотя это и не логично совсем. А свою логику не объясняют.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»