As part of the module Embedded Systems, our team of 4 was tasked with writing
real-time firmware for precise control of a brushless motor.
The firmware used interrupts to respond to commands given over a serial port.
It also used threading and ran a bitcoin encryption task at low priority to
demonstrate how much CPU time remained after executing motor control
tasks.
The motor spun for a defined number of roations and stop without overshooting.
It also spun at a defined angular velocity.
Considerations included;