Начал изучать FreeRTOS. Не могу понять вот что. Как правильно обработать прерывание? Вот, например, простенькая задача. Обрабатывать одну кнопку. Одинарное нажатие и двойное. Я вижу такое решение (без FreeRTOS): в прерывании, от нажатия кнопки я отсчитываю время, и если разница между срабатываниями меньше определенного - это двойной клик. Иначе - одинарный. Как подобное принципиально решается во FreeRTOS?

Комментарии: 9

  1. Anton

    Можно такое делать в отдельном потоке с высоким приоритетом. Ставится там delay, чтобы поток исполнялся с нужной частотой и в нем все опрашивается. Можно и в прерываниях как вы описали, но думаю оно сложнее.

  2. Anonim

    опять закручиваем саморезы молотком? я не понимаю, зачем решать с помощью rtos задачи которые решаются нормально ей? энкодер тоже на задачах rtos будем обрабатывать?

    • Aleksandr

      Вот! Я хочу понять, как принципиально правильно это делать!

      • Anonim

        обрабатывать в прерываниях, класть в уровень "hal", rtos проверять в задачах что там нам положили hal это не тот hal что от ST, это просто прокладка, класс, структура или просто переменная глобальная

        • Aleksandr

          Опередили. Но разве глобальная переменная - это не есть плохо в модульном FreeRTOS?

          • Anonim

            а иначе как?

            • Aleksandr

              Не знаю, потому и спрашиваю.

              • Anonim

                у тебя прерывание это уже hardware-specific уровень который делит модульность на ноль

  3. Denis

    ещё можно проклеить спец термоклеем клеем, сам не проверял но тест видел если кому интересно если прям хочется с прерываниями то используйте событие, в потоке первым делом ждете неограниченое время до возникновения события, потом ограниченое время если 2ое событие не сработало то одинарное нажатие, сработало - двойное в прерывании от кнопки генерируйте событие для ртоса тоже можно сделать на мьютексах и семаформах если кнопок больше 1ной и нужно ещё и длительное нажатие то обработка по прерыванию превращается в попоболь мое имхо опрашивать кнопки в потоке и от этого плясать

Не нашли ответ?

Вам также может быть интересно

Парни, добрый день всем. Запустил я свой тепловизор. И вопросов не стало меньше. Стопор убрал. Тут многие фото выкладывали... Читать далее