Прерывание по таймеру и ШИМ

Пример из библиотеки.

И почитайте там README.md

Я все это читал раз 10.

Он берет стандартный ридбайтунтил.
И юзает его через буфер.
А в вашем примере нет этого

Это не мой пример. Это пример из библиотеки.

Но дальше спорить не буду.

Это как в борьбе - кидает через колено?

По-моему вам нужно внимательно прочитать, что такое буфер:

И, хочу разочаровать, но асинхронное чтение в вашем коде отсутствует. В какой строке используется serial (и отличаете ли его от Serial)?

1 лайк

Не разочаровали.
Мне главное результат был нужен. Я его этим кодом получил. И этот результат намного лучше того что пробовал до него.

ну и самое главное… Никто ничего более подходящее не предложил.

Это вообще закомментить можно.
Но, как плацебо, оно работает - тут не поспоришь.

А предлагать… Какой смысл, если что совой об пень, что пнём об сову.

1 лайк

Может у программистов как-то по другому…
Но если вы в обмене сообщениями приводите какой-то аргумент, пример чего либо, то я имею полное право назвать ваш аргумент, пример или кусок кода - Вашим примером в том смысле, что Вы его привели.

Конечно же не имеется ввиду что вы его составили.

Обязательно проверю по скоростям.

Пересмотрел сейчас ещё раз видео.
Автор рассказывает про тот код который я выложил, проверяет скорость работы парсинга и говорит о приросте скорости на несколько порядков.
А затем говорит, что у него есть ещё целая библиотека для асинхронного чтения данных…и там действительно мелькает serial с маленькой буквы.
Ну то есть та, которая вами цитировалась.

Так что действительно спорить смысла нет никакого.

Относительно чего?

Если бы Вы посмотрели не видео, а код Вашего readBytesUntil, глупостей в этой теме было бы сильно меньше написано. Впрочем, дел Ваше, Вы ведь сюда пришли поспорить, а не послушать людей, которые знаю на порядки больше Вас.

Гайвер он такой, да…

Вы сами-то голову включите - откуда тут может быть несколько порядков, если чтение все равно происходит со скоростью сериал. Ни быстрее ни медленнее просто не получится.

Общепринятый способ - чтение потока посимвольно. Правда, это способ не для поклонников гайвера, которые верят в вечный двигатель…

Я обычно добавляю “если есть”. Потому, что очень часто в том месте, где она должна быть, обнаруживается ютуб

2 лайка

Вообще, Алекс - мастер впаривания, который и зимой продаст вам снег в красивой упаковке :slight_smile:
Зачем, нафик, какая-то " библиотека для асинхронного чтения", если стандартный UART сам по себе асинхронный?

Так суть Ардуино как раз в “кирпичиках”. Надо на ноге поставить “1”? Используй библиотеку!:grinning_face_with_smiling_eyes: ДиджиталВрайт как раз это иллюстрирует. А ты тут про регистры UARTa…Мракобесие, не иначе)

Я где-то писал про регистры?

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

Любое использование “read что-то там until” - не важно чье, гайвера или стандартное - это отсутствие мозгов и только

Вы, кроме канала Гивера, хоть что-нибудь читаете? Ну, хотя бы, на самый худой конец, Википедию? Попробуйте, узнаете, что и без всякой библиотеки UART – это “Universal Asynchronous Receiver-Transmitter”

1 лайк

Просто поразительно.
Столько понаписал, но никто ничего не предложил.

“… но никого не встретил…” (с)

Чтобы заметить, что вам тут предложили (а предложений тут было несколько) - надо иметь чуть больше знаний, чем минус один

1 лайк

Давайте промежуточно подитожим.
Вы написали что строка чтения из сериал отстой.
Назвали причину по которой вы считаете ее отстоем, увидели цифру 30 и предположили что ожидание чтения длится до таймаута.

Вот хотябы относительно этого.