f23ljup2 For example, is the exposure always a multiple of 32uSec?
I have no idea.
How software timers normally work is to have a timer module that has a fixed period (perhaps the 32µs that you mentioned). It would interrupt the microcontroller, and that would eventually call an interrupt service code. The interrupt latency is not a constant and actually depend on what instruction is currently running -- ARM actually allows a division operator (since it is very slow) to itself be interrupted :-).
If it were me, I would make the timer interrupt perhaps 100 processor clock ticks (not timer ticks) before the exposure time expires, then looping until the processor clock reaches the precise target time. This will have much less uncertainty in exposure time than just letting the timer control the exposure time.
But I have no idea how ZWO does it.
Chen