Attiny13. Проблема с кнопкой.
Attiny13. Проблема с кнопкой.
Драсьте! Помогите плиз. Не получается сделать так, чтоб с помощью одной кнопки зажигать\гасить светодиод. Нажал - горит, нажал ещё - погас. Кнопка - 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;}
Включает, но не выключает)
if ((PINB.3==0)&&(PORTB.4=1))
{PORTB.4=0;
delay_ms(200);}
if ((PINB.3==0)&&(PORTB.4=0))
{PORTB.4=1;}
Включает, но не выключает)
Очень жаль, когда люди упираются лбом в что-то, хотя это и не логично совсем. А свою логику не объясняют.
- Реклама
Re: Attiny13. Проблема с кнопкой.
или так ("==" вместо "="):
или так:
Код: Выделить всё
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);}Re: Attiny13. Проблема с кнопкой.
if(PINB.3==0) {
PORTB.4 = ~PINB.4;
delay_ms(200);
}
PORTB.4 = ~PINB.4;
delay_ms(200);
}
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Attiny13. Проблема с кнопкой.
А если даташит очень внимательно почитать...
Код: Выделить всё
if(PINB.3==0) {
PINB.4 = 1;
delay_ms(200);
}
Re: Attiny13. Проблема с кнопкой.
PORTB.4 = ~PORTB.4; правильнее 
- Реклама
Re: Attiny13. Проблема с кнопкой.
спасибо, не зналEngineer_Keen писал(а):А если даташит очень внимательно почитать...Код: Выделить всё
if(PINB.3==0) { PINB.4 = 1; delay_ms(200); }
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Attiny13. Проблема с кнопкой.
Это в основном фишка тинек, хотя в 48-88 мегах тоже встречается.
Re: Attiny13. Проблема с кнопкой.
Эта фишка новых серий. В классической восьмой нет, в 8А уже есть, если память не изменяет. В 48-88-168 есть во всех.
Re: Attiny13. Проблема с кнопкой.
так что в плане переносимости не стоит так делать 
Re: Attiny13. Проблема с кнопкой.
Спасибо за оперативность) Бум пробовать)
Очень жаль, когда люди упираются лбом в что-то, хотя это и не логично совсем. А свою логику не объясняют.
- radiokot__
- Мучитель микросхем
- Сообщения: 454
- Зарегистрирован: Вс янв 15, 2012 19:58:40
Re: Attiny13. Проблема с кнопкой.
Код: Выделить всё
#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();
}
}Ни один домашний кот незнает что он домашний.
Re: Attiny13. Проблема с кнопкой.
Даже лень читать всё, что написали. Загляни в датащий по этой микросхеме. В частности на I/O Ports.
Из личного опыта помню, что на порте Б нету аналогового сингала. На него можно вешать кнопки. А вот диоды надо на портА и то, не на все!
Из личного опыта помню, что на порте Б нету аналогового сингала. На него можно вешать кнопки. А вот диоды надо на портА и то, не на все!
Купил лазерный принтер... Теперь осталось спаять машину времени и прислать себе принтер пораньше =D
Re: Attiny13. Проблема с кнопкой.
Во–первых. Если не ошибаюсь, на любой порт можно и кнопки кидать и диоды подключать. Главное, правильно сконфигурировать)
Во–вторых, чувак, открой даташит. В Tiny13 нет порта А) Если лень читать, то не советуй. Тут не 40 страниц.
Во–вторых, чувак, открой даташит. В Tiny13 нет порта А) Если лень читать, то не советуй. Тут не 40 страниц.
Очень жаль, когда люди упираются лбом в что-то, хотя это и не логично совсем. А свою логику не объясняют.


