Arduino mega и многопоточность

Тема в разделе "Arduino & Shields", создана пользователем Almightily, 23 май 2017.

  1. Almightily

    Almightily Нерд

    Доброго времени суток. Подскажите, пожалуйста, как мне можно реализовать одновременное ожидание данных с Serial порта, а когда, скажем, нажата кнопка, в этот же порт записывается данные.

    Пытаюсь использовать для этого таймер:
    Код (C++):
    OCR0A = 0xAF;
    TIMSK0 |= _BV(OCIE0A);

    SIGNAL(TIMER0_COMPA_vect)
    {

    }
    Однако никакого эффекта нет, не пишется в порт ничего
     
  2. Almightily

    Almightily Нерд

    Проблема решилась внешними прерываниями
    Код (C++):
    attachInterrupt
     
  3. rkit

    rkit Гуру

    Данные с порта не надо ожидать, они автоматически получаются и складываются в буфер стандартными средствами ардуино. Всё что вам нужно - проверять их наличие. Почитайте туториалы по ардуино, не страдайте ерундой.
     
  4. Almightily

    Almightily Нерд

    Тоже мудрый совет, мой код был неправильным. Оказывается можно просто проверить есть ли данные, а не ждать их вечно
     
    Tomasina нравится это.
  5. smile

    smile Нерд

    просто if (Serial.available() > 0) { }