-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Создание общей архиектуры алгоритма управления #49
Comments
SergNikitin
added a commit
that referenced
this issue
May 15, 2014
SergNikitin
added a commit
that referenced
this issue
May 15, 2014
Описанная структура приведет к синхронной работе системы, чего мы не хотим по причинам быстродействия. В прерывании энкодера будем считать угол и скорость, как критичные по быстродействию части системы, а остальное (типа угла коммутации) - в других местах (main или другие прерывания) |
control_algo : api:
|
akindyakov
added a commit
that referenced
this issue
May 17, 2014
akindyakov
added a commit
that referenced
this issue
May 17, 2014
SergNikitin
added a commit
that referenced
this issue
May 17, 2014
SergNikitin
added a commit
that referenced
this issue
May 17, 2014
akindyakov
added a commit
that referenced
this issue
May 17, 2014
akindyakov
added a commit
that referenced
this issue
May 17, 2014
Переименовываю control_interrupt.o to synchronized_control.o |
SergNikitin
added a commit
that referenced
this issue
May 18, 2014
SergNikitin
added a commit
that referenced
this issue
May 18, 2014
SergNikitin
added a commit
that referenced
this issue
May 18, 2014
SergNikitin
added a commit
that referenced
this issue
May 18, 2014
SergNikitin
added a commit
that referenced
this issue
May 18, 2014
akindyakov
added a commit
that referenced
this issue
May 18, 2014
akindyakov
added a commit
that referenced
this issue
May 18, 2014
SergNikitin
added a commit
that referenced
this issue
May 18, 2014
SergNikitin
added a commit
that referenced
this issue
May 18, 2014
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Первоначально запланировали следующую концепцую:
Управление осуществляется по определённому главному событию - прерыванию энкодера. Для удобочитаемости и простоты поддержания кода все составляющие, необходимые для формирования адекватного управления, выносим в отдельные модули.
У каждого модуля есть единый для всех модулей интерфейс запуска своего специализированного обработчика (например, run() ). Обработчики берут необходимые им данные из глобальных переменных (например, state) и, если на выходе генерируют данные, необходимые другим модулям, кладут их в глобальные же переменные.
Обработчик главного события знает о всех модулях и знает, какие из них включены на данный момент. В обработчике главного события последовательно запускаются все включенные модули.
Таким образом получаем возможность легко включать, отключать и переключать необходимые на данный момент модули. И код не свален в одну кучу.
Для увеличения быстродействия обработчики модулей делаем inline
The text was updated successfully, but these errors were encountered: