Got the firmware to compile and produce something vaguely sensible.

This commit is contained in:
2022-04-15 17:28:01 +02:00
parent eae98a8f39
commit 574a60cbb6
5 changed files with 164 additions and 41 deletions

View File

@@ -1,6 +1,6 @@
Motion control in an interrupt.
= Parts
== Parts
This consists of two parts, the planner and the executor.
The planner receives target positions. Each time it receives a target
@@ -13,7 +13,7 @@ the step lines of the MCU.
These two processes communicate by means of a command queue.
== Executor
=== Executor
1. Update a cycle counter
2. Evaluates the next output of the position polynomial (3 adds)
3. determine whether to toggle a stepper, and do so.
@@ -21,7 +21,7 @@ These two processes communicate by means of a command queue.
== Command queue
=== Command queue
The command queue takes the form of a ring buffer, with each item
containing a motion segment. The ring buffer must be large enough to
@@ -40,9 +40,9 @@ A motion profile segment consists of the following values:
The following invariants hold for the command queue:
== Planner
=== Planner
=== Aborting
==== Aborting
In case of an abort, the fastest stop profile will consist of at most
3 segments: const -jerk to max -a, const -a to to lead-out, const +j