TGViewer
Шось про айтішку Шось про айтішку @smthng_dev · 2.01K subscribers
Post #853 1.1K
Сьогодні якраз була задачка куди можна припхати RTOS. Значить дано: датчик, шось він ловить і має дьорнути якусь іншу залізяку.

Найпростіший і найтупіший спосіб це зробити — забити на RTOS, і постійно перевіряти датчик на наявність показників, тобто:

while (1)
{
if (data_ready())
{
// read data do stuff
}
}

Аднааака, ходити туди сюди по дротам 100500 разів на секунду це теж недешева забава, може зайняти десь 100 мікросекунд. Тобто потенційно затримка на отримування показників може бути 100+ мкс.

Сенсор віддає дані наприклад з частотою в 60Гц, тому нема сенсу перевіряти його частіше ніж кожні 16.666мс. Отже можна скористатись FreeRTOS і винести функцію яка працює з показниками у окремий таск який буде викликатись 60 разів на секунду. Таким чином ми ще й розвантажуємо ядро, щоб можна було робити іншу роботу, за потреби. Кількість вказаних мілісекунд конвертується в кроки процесору, таким чином досягається приблизна точність в часі.

Тепер виходить, що в нас і сенсор і контроллер працюють на 60Гц, але вони при цьому не синхронізовані. Тобто є дві доріжки, на кожній шось відбувається приблизно кожні 16.666мс, але зі зсувом. Це як два годинники які запустили неодночасно. Таким чином все одно маємо затримку, яка ще і гуляє по часу.

Покращити це можна використавши приривання, якщо в сенсорі є такий інтерфейс. По суті, замість того щоб перевірять датчик на наявність даних, ми чекаємо від нього сигналу. А щоб впевнитись, що реакція на сигнал буде якомога швидшою, функція реєструється як обробник преривання, тобто такою що буде викликана з високим пріорітетом. Тут все одно буде якась затримка, але хоча б стабільна, бо тепер контролер синхронізований з датчиком.

Далі є DMA (direct memory access), але для моїх задач навіть вищеописаного забагато, достатньо безкінченого циклу)
  • 👍 12
More from @smthng_dev
  1. Oct 7, 2026Зробив відос про LibreSDR на fpga, про який писав раніше https://youtu.be/QGsATxwAY5Q
  2. Oct 7, 2026А тут свіже інтервʼю з керівником команди розробки в бригаді Ахіллес https://youtu.be/AKEe…
  3. Oct 7, 2026https://www.youtube.com/watch?v=oLQ0ZdLuqTs
  4. Oct 6, 2026Мілтех дайджест тепер і у відео форматі. Дивіться перший випуск на DOU 👉 https://youtu.be…
  5. Oct 5, 2026Нагадую вам про збір на маскувальні сітки буду вдячний за допомогу 👉 https://send.monoban…
  6. Oct 4, 2026тізер вам на нове відео на каналі https://www.youtube.com/@smthng_dev
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →