Ответ в теме: Программирование МК AVR



#26211
fate070788
Участник

Добрый день, не могу не где найти как решить такую задачу, мне надо по нажатию на кнопку подать импульс 200мс но если кнопка отается нажатой нечего не делать пока ее не отпустят и нажмут заного. У меня пока такой код так как я знаю время нажати до 7сек но хочется сделать что-бы было универсально для любого времени нажатия
#define F_CPU 1000000L
#include
#include
int main(void)
{
DDRD = 0x00; // порт D на вход
PORTD = 0xFF; // подключаем внутренние подтяг. резисторы
DDRB = 0xFF; // порт B на выход
PORTB = 0x00; // устанавливаем нули на выходе
while(1)
{
if(!(PIND&(1 << PD0))) // Проверяем нажатие кнопки
{
PORTB |= (1 << PB0); // зажигаем светодиод
_delay_ms(200); // задержка 200мс
PORTB &= ~(1 << PB0); // гасим светодиод
_delay_ms(10000); // задержка 10000 мс
}

else
{
//PORTB &= ~(1 << PB0); // Гасим светодиод

}
}
}