Страница 1 из 1

3 светодиода и 3 кнопки

Добавлено: Сб май 10, 2014 20:48:51
winston1777
Привет всем ! Пишу программу на С под atmega328p и столкнулся с проблемой. Мне все понятно когда нажимаеш на кнопку светодиод загорается, еще раз нажимаеш светодиод погасает, а как бы мне сделать так чтобы нажимая на 1 кнопку светодиод 1 загорался , нажимая на 2 кнопку светодиод 2 загорался а светодиод 1 погас, и все тоже самое с 3 кнопкой и с 3 светодиодом. Помогите пожалуйста я пока новичек в этом деле

Re: 3 светодиода и 3 кнопки

Добавлено: Сб май 10, 2014 21:58:20
Pavel_1978
Алгоритм простой:
Опрашиваешь кнопки и получаешь код нажатой кнопки.

Примени оператор swich, ненужные светодиоды гаси маской.

Re: 3 светодиода и 3 кнопки

Добавлено: Вс май 11, 2014 00:44:43
nirq
нажимаеш на кнопку светодиод загорается, еще раз нажимаеш светодиод погасает
Антидребезг.

Чем помочь-то? Привет!

Re: 3 светодиода и 3 кнопки

Добавлено: Вс май 11, 2014 00:52:44
winston1777
nirq писал(а):
нажимаеш на кнопку светодиод загорается, еще раз нажимаеш светодиод погасает
Антидребезг.

Чем помочь-то? Привет!
а как бы мне сделать так чтобы нажимая на 1 кнопку светодиод 1 загорался , нажимая на 2 кнопку светодиод 2 загорался а светодиод 1 погас, и все тоже самое с 3 кнопкой и с 3 светодиодом. Помогите пожалуйста я пока новичек в этом деле

Re: 3 светодиода и 3 кнопки

Добавлено: Вс май 11, 2014 01:53:36
pyzhman
winston1777 писал(а):Мне все понятно когда нажимаеш на кнопку светодиод загорается
И следом гасить ненужые.

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

void main(void)
{
delay_ms(30);
old_knopka1= knopka1;
old_knopka2= knopka2;
old_knopka3= knopka3;

knopka1= PINa.b;
knopka2= PINc.d;
knopka3= PINe.f;

if(old_knopka1 && !knopka1)
    {
    LED1= 1;
    LED2= 0;
    LED3= 0;
    }
if(old_knopka2 && !knopka2)
    {
    LED1= 0;
    LED2= 1;
    LED3= 0;
    }
if(old_knopka && !knopka)
    {
    LED1= 0;
    LED2= 0;
    LED3= 1;
    }


}

Re: 3 светодиода и 3 кнопки

Добавлено: Пт май 23, 2014 14:32:42
Gudd-Head