Обновить
9
0
Алексей@boolivar

Пользователь

Отправить сообщение
Да не имел в виду я никакой DSL, просто не хотел привязываться к конкретному языку программирования.
В си я бы использовал массив указателей на функции, в C++/Java накидал бы коллекцию различных реализаций интерфейса Move и т.д.
Да, можно вынести во внешние конфиги или описать действия на внешнем DSL, чтобы не пересобирать программу при изменении состава действий, в любом случае, это будет лучше чем метод с большим количеством строк.
Я бы предложил вам каждый шаг алгоритма выделить в данные, тогда реализация самого алгоритма будет занимать 3-5 строк цикла обработки данных, размер же самих данных в +100500 элементов, никого не смущает.

Что-то типа:

moves = {'присесть': aMove, 'покудахтать': bMove, 'порычать': mooMove, 'помахать руками': cMove, 'привстать': dMove, 'попрыгать': eMove,…};

magicDance(moves) {
for (move: moves) {
move.do();
}
}

И такая реализация, гораздо лучше метода в +100500 строк, теперь входные данные могут быть произвольными, генериться на лету, например во время танца под музыку.
Возможно, это сделано для одностороннего вызова из пользовательского кода в код ядра: например, вы записываете аргументы в системный стек и вызываете программное прерывание — таким образом происходит системный вызов. Обратный же вызов должен быть запрещен — переход от ядра к пользовательскому коду должен быть только по команде reti — возврат из прерывания. Причина тому — возврат из пользовательской функции, который, в таком случае, должен был бы вернуться в ядро, а это плохая идея, поскольку, установка адреса возврата стала бы доступна пользовательскому коду.
Как уже написали выше, присмотритесь к протопотокам о них уже писали тут.
Я могу предложить свою библиотеку для AVR: например, вот модуль i2c, примеры как с ним работать есть тут и тут, а вот очередь.
Мьютекс в статье я не увидел, присмотритесь к конструкции ATOMIC_BLOCK.
Схема электрическаЯ принципиальнаЯ
Благодаря вашему комменту я тоже прочитал этот замечательный топик. Спасибо!
В детстве у меня была вот такая вот шикарная книга:
www.ozon.ru/context/detail/id/2851811/
Физика в комиксах! С удовольствием и сейчас бы почитал.
Да, несколько процессоров я не учел, спасибо.
Не очень понял идею N попыток захвата:
Время переключения контекста существенно выше одной попытки получить спинлок.
Да, но разве освобождение захваченного спинлока не требует переключения на процесс его захвативший?
Был на премьере. Очень понравилось, действительно круто, особенно для Калуги. Вход был бесплатный, поддержали с друзьями на пожертвованиях ну и плакатики с дисками приобрели :)
Кстати, на премьеру приехали зрители из Москвы, Омска, Мурманска, был приятно удивлен.
Тут же вроде обратная зависимость.
К сожалению, не знаю кто такой Каганов, но столько текста из-за такой ерунды.
А есть где-нибудь сравнение быстродействия этих коллекций?
Да, субъективно, не ниже 1КГц, но ШИМ контроллера позволяет выдавать и гораздо большие частоты.
Что за странная нелюбовь к динамической индикации? :-)
Прям напрашивается выход ШИМ контроллера завести на вход «Output disable» драйвера и яркость в ваших руках.
Скажите, как качество приема на пассивную антенну в помещении? Сколько времени проходит до корректного приема времени?
Не понял, зачем вам посылки $GNGSA?
Не кидайтесь словами, кидайтесь ссылками.

Информация

В рейтинге
Не участвует
Откуда
Калуга, Калужская обл., Россия
Дата рождения
Зарегистрирован
Активность