Always "gain first, then integrate". Otherwise if you change the gain, the output makes a huge jump, even at zero error.
The integrator saturation needs to be performed based on whether the actual output is at its (user-defined limits), not something else.
Always apply the setpoint offset last, not first. I.e. apply it at the output. If you apply it first, the differentiator gets a big kick if you change the setpoint even though that is not expected or useful.
A PID controller is just a second order IIR filter (a biquad). If you implement it as such, then there is none of those problems and you get better performance for free (though that is not an issue here). Most importantly you can apply control theory directly to the IIR filter, reason about its functionality, and easily verify the implementation.
BTW. you can set the MAC address with any decent JTAG tool, e.g. openocd. Just write to the two registers.
@wobucho a couple things:
BTW. you can set the MAC address with any decent JTAG tool, e.g. openocd. Just write to the two registers.