fate070788



Ответы в темах

Просмотр 1 сообщения - с 1 по 1 (всего 1)
  • Автор
    Сообщения
  • в ответ на: Программирование МК 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); // Гасим светодиод

    }
    }
    }

  • Автор
    Сообщения
  • в ответ на: Программирование МК 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); // Гасим светодиод

    }
    }
    }

Просмотр 1 сообщения - с 1 по 1 (всего 1)