Make_Pic 0 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба Делюсь окончательным вариантом с учетом замечаний. Сам планировщик: http://pastebin.com/RqVLaFrJ Проект Atmel Studio 7 для тестов и веселья TinyScheduler_ver6_ElecronixEDIT_.zip P.S. GCC опять веселит. Если собрать проект с оптимизацией -O1 то он почему-то окажется на 4 байта меньше, чем собранный с оптимизацией по размеру -Os А вообще зачем здесь плюсы? - Только поиграться с шаблонами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба sigmaN вы знаете о protothreads? Я не знаток С++ и мне сложно ориентироваться в коде. Какие у вас преимущетсва на фоне protothreads? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба А вот если бы это была не ссылка на pastebin, а ссылка на репозиторий на github, Да, надо там зарегиться наконец ) А вообще зачем здесь плюсы? - Только поиграться с шаблонами? Поиграться с шаблонами - это раз. Получить хорошую реализацию, соответствующую всем принципам инкапсуляции - это да. Ну а задать вопрос "Зачем здесь плюсы?" можно к любому проекту. Ведь всё можно сделать и без плюсов )) Какие у вас преимущетсва на фоне protothreads? Никаких. У меня дёргалка функций с заданной частотой. protothreads же нацелен именно на создание "потоков" и обеспечение примитивов синхронизации потоков( PT_WAIT_UNTIL() и его производные ). Кстати нужно будет подумать как реализовать всё это на плюсах, со сравнимой эффективностью но без фокусов с препроцессором, к которым пришлось прибегнуть авторам protothreads... Интересная задачка на будущее кстати. Пока не уверен, что удастся побить по тактам их макросный фокус со switch() Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 1 марта, 2017 Опубликовано 1 марта, 2017 · Жалоба Add: Даа, с protothreads не поспоришь. Максимум C++ обертку можно сделать чтоб чуть красиее было и всё. А внутри сложно поспорить по эффективности с одной переменной и switch'ем, причем очень удобно замаскированным и невидимым для пользователя )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 3 марта, 2017 Опубликовано 3 марта, 2017 · Жалоба Пожалуй единственное что мне не нравится в protothreads, я не соображу как ее сделать ticlkess для low power приложений. Недавно перенес планировщик от NRF51822 на STM8L когда используются пара виртуальных таймеров все отлично работает. Когда начинаю их активно останавливать/запускать начинаются глюки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arhiv6 14 3 марта, 2017 Опубликовано 3 марта, 2017 · Жалоба Максимум C++ обертку можно сделать чтоб чуть красивее было и всё. уже было такое: https://github.com/benhoyt/protothreads-cpp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 3 марта, 2017 Опубликовано 3 марта, 2017 · Жалоба А вот если бы это была не ссылка на pastebin, а ссылка на репозиторий на github, то вместо того, чтобы перечитывать заново весь исходник, можно было бы посмотреть diff... Это так, намёк:) кстати, репозиторий необязателен, т.к. для расшаривания небольших сниппетов есть https://gist.github.com/ с поддержкой контроля версий Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 3 марта, 2017 Опубликовано 3 марта, 2017 · Жалоба Пожалуй единственное что мне не нравится в protothreads, я не соображу как ее сделать ticlkess для low power приложений. А в чём проблема? Заменяете периодические прерывания по системному таймеру на программирование таймера на прерывание в момент времени ближайшего таймерного события одной из задач. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 3 марта, 2017 Опубликовано 3 марта, 2017 · Жалоба Кстати в С++17 ожидается поддержка Coroutines. Т.е. мы будем иметь продвинутые С++ protothreads прям в ядре языка! https://youtu.be/_fu0gx-xseY https://youtu.be/8C8NnE1Dg4A Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться