Hi John,
the procedure as I understand it is as follows. The ECU goes thru an initial process to determine the engines rotational status. Eg, which cylinder is where and in which state, compression or emptying the bucket. This is governed by the toothed wheel attached to the camshaft and the engine position sensor and takes several engine rotations.
After the status has been established and verified the fuel phase table takes over. This table contains rotational degree values which are the starting point for the calculation of coil discharge and injector opening time. They are used in a backward calculation.
Which makes sense if one considers that the behaviour of any coil is depended on voltage (and coil design characteristics) and the logarithmic charging characteristics. So the tooth wheel and the missing teeth provide the starting point for the capcom-ops in the code which do the pulse-counting. This starting point (from a rotational point of view it's behind TDC) is in fact the point at which the circuits are opened again. Meaning, the point at which the discharge of the coil or the opening of the injector end.
So the calc looks like this:
Endpoint (fuel phase table value) + coil charging time/injector opening time = coil discharge start/injector opening
The code also contains a trim table to take care of the voltage dependencies. Eg, lower voltage requires a longer coil charging time/injector opening time to achieve the same effect due to the slower coil saturation.
So, the answer to your question "Does the ECU vary the period it opens" is yes, it does.
Based on the terrific analysis of the components used in the 5AM ECU done by John Th. we know that the current draw is used as another factor in the 5AM (and presumably later generations). I don't know if this current draw was already used in the 15M/RC.
Cheers
Meinolf