Работа с кнопкой

Тема в разделе "Arduino & Shields", создана пользователем Baltika-9, 3 дек 2019.

  1. b707

    b707 Гуру

    прерывание таймера по переполнению, или по совпадению
     
  2. b707

    b707 Гуру

    не, это чтобы похвастать, что у него не атмега328
     
  3. b707

    b707 Гуру

    ТС это не поможет, у тебя опрос по миллис, а у него слишком медленный код. миллис не успевает :)
     
  4. Daniil

    Daniil Гуру

    Компилятор проверяет только синтаксис. Если вам нравится код, то зачем эта тема?
    Мне кажется, что ТС с научной жилкой - прет на своем, пока не упрется в камень, а там и повернет, пока не придет к исходной точке или не пророет наикривейшую нору.
     
  5. SergeiL

    SergeiL Оракул Модератор

    Ну это в примере по millis();
    Обычно в таймере, код короткий.
     
  6. b707

    b707 Гуру

    ну пусть ТС попробует это пристроить в свой код. Мне даже интересно на это посмотреть.
    Он же наверняка попытается затащить в прерывание по таймеру свою работу с меню, иначе опрос кнопок для него не имеет смысла.
     
  7. parovoZZ

    parovoZZ Гуру

    что таймер?
     
  8. parovoZZ

    parovoZZ Гуру

    В ардруине? Какие ардуино функции для этого используются?
     
  9. parovoZZ

    parovoZZ Гуру

    это из заголовочника.

    Вот для 328P прерывания:
    Код (C++):

    /* Interrupt Vectors */
    /* Interrupt Vector 0 is the reset vector. */

    #define INT0_vect_num     1
    #define INT0_vect         _VECTOR(1)   /* External Interrupt Request 0 */

    #define INT1_vect_num     2
    #define INT1_vect         _VECTOR(2)   /* External Interrupt Request 1 */

    #define PCINT0_vect_num   3
    #define PCINT0_vect       _VECTOR(3)   /* Pin Change Interrupt Request 0 */

    #define PCINT1_vect_num   4
    #define PCINT1_vect       _VECTOR(4)   /* Pin Change Interrupt Request 0 */

    #define PCINT2_vect_num   5
    #define PCINT2_vect       _VECTOR(5)   /* Pin Change Interrupt Request 1 */

    #define WDT_vect_num      6
    #define WDT_vect          _VECTOR(6)   /* Watchdog Time-out Interrupt */

    #define TIMER2_COMPA_vect_num 7
    #define TIMER2_COMPA_vect _VECTOR(7)   /* Timer/Counter2 Compare Match A */

    #define TIMER2_COMPB_vect_num 8
    #define TIMER2_COMPB_vect _VECTOR(8)   /* Timer/Counter2 Compare Match A */

    #define TIMER2_OVF_vect_num   9
    #define TIMER2_OVF_vect   _VECTOR(9)   /* Timer/Counter2 Overflow */

    #define TIMER1_CAPT_vect_num  10
    #define TIMER1_CAPT_vect  _VECTOR(10)  /* Timer/Counter1 Capture Event */

    #define TIMER1_COMPA_vect_num 11
    #define TIMER1_COMPA_vect _VECTOR(11)  /* Timer/Counter1 Compare Match A */

    #define TIMER1_COMPB_vect_num 12
    #define TIMER1_COMPB_vect _VECTOR(12)  /* Timer/Counter1 Compare Match B */

    #define TIMER1_OVF_vect_num   13
    #define TIMER1_OVF_vect   _VECTOR(13)  /* Timer/Counter1 Overflow */

    #define TIMER0_COMPA_vect_num 14
    #define TIMER0_COMPA_vect _VECTOR(14)  /* TimerCounter0 Compare Match A */

    #define TIMER0_COMPB_vect_num 15
    #define TIMER0_COMPB_vect _VECTOR(15)  /* TimerCounter0 Compare Match B */

    #define TIMER0_OVF_vect_num  16
    #define TIMER0_OVF_vect   _VECTOR(16)  /* Timer/Couner0 Overflow */

    #define SPI_STC_vect_num  17
    #define SPI_STC_vect      _VECTOR(17)  /* SPI Serial Transfer Complete */

    #define USART_RX_vect_num 18
    #define USART_RX_vect     _VECTOR(18)  /* USART Rx Complete */

    #define USART_UDRE_vect_num   19
    #define USART_UDRE_vect   _VECTOR(19)  /* USART, Data Register Empty */

    #define USART_TX_vect_num 20
    #define USART_TX_vect     _VECTOR(20)  /* USART Tx Complete */

    #define ADC_vect_num      21
    #define ADC_vect          _VECTOR(21)  /* ADC Conversion Complete */

    #define EE_READY_vect_num 22
    #define EE_READY_vect     _VECTOR(22)  /* EEPROM Ready */

    #define ANALOG_COMP_vect_num  23
    #define ANALOG_COMP_vect  _VECTOR(23)  /* Analog Comparator */

    #define TWI_vect_num      24
    #define TWI_vect          _VECTOR(24)  /* Two-wire Serial Interface */

    #define SPM_READY_vect_num    25
    #define SPM_READY_vect    _VECTOR(25)  /* Store Program Memory Read */
     
     
  10. b707

    b707 Гуру

    намекаешь. что этого нет в книжках для маленьких? - ну через регистры-то доступно
    А в ардуине для СТМ32 даже и функции есть. типа timer.setPeriod()
     
  11. SergeiL

    SergeiL Оракул Модератор

    Согласен, он может.
    Обработку нажатий оставляем в loop() тогда не будет тормозить...
     
  12. jr.Bush

    jr.Bush Нерд

  13. jr.Bush

    jr.Bush Нерд

    http://arduino.ru/Reference/AttachInterrupt Кажется я нашел, что искал, но в mega2560 далеко не все порты используют прерывания, в моем проекте буду все кнопки вешать на драгоценный аналоговый вход, через резисторы разного номинала.
     
  14. b707

    b707 Гуру

    Отис, к чему это в этой теме? Заблудились?
    Хотите задать вопрос - откройте свою тему, не надо в чужих вопросах мусорить
     
  15. otis

    otis Гик

    А нечего что название темы Работа с кнопкой. И на 1 странице вопрос как и у меня. Так кто заблудился?