ECM Timing
This information is specific to the 1227165 ECMs used in 1986 - 1989 Corvettes. The other ECMs are similar and I believe they got faster in the later C4s with the LT1 and LT4 engines.
The master interrupt clock in the microcontroller creates an interrupt every 6.25 ms (millisecond = 1/1000 of a second). 6.25 ms is 0.00625 seconds. Every time an interrupt comes along, the Major Loop Counter at address $0000 in RAM is incremented by one. That counter is used as an index into the Major Loop Segment Table, which looks like this:
*******************************************************
* Major Loop Segment Table
*******************************************************
LCCE4: FDB $CD04 ; 0.00 ms, Segment 0, Do nothing, exit via RTS
FDB $EDA3 ; 6.25 ms, Segment 1, Output Bit Signals (TCC, CCP etc)
FDB $E07F ; 12.50 ms, Segment 2, VSS Calculation
FDB $EA28 ; 18.75 ms, Segment 3, Misc 100 ms
FDB $F8F9 ; 25.00 ms, Segment 4, Log RAM to Heads Up
FDB $ECEA ; 31.25 ms, Segment 5, A/C, Closed Loop & Cooling fan
FDB $F3B6 ; 37.50 ms, Segment 6, Log RAM to Heads Up, read coolant temperature
FDB $EA95 ; 43.75 ms, Segment 7, Look up Coolant variables
FDB $CD04 ; 50.00 ms, Segment 8, Do Nothing, exit via RTS
FDB $E34E ; 56.25 ms, Segment 9, A.I.R. Injection Management
FDB $EB3A ; 62.50 ms, Segment A, Look up Manifold Air Temp Variables
FDB $DEE5 ; 68.75 ms, Segment B, EGR
FDB $E75D ; 75.00 ms, Segment C, Charcoal Canister Purge
FDB $EF04 ; 81.25 ms, Segment D, Diagnostics
FDB $DE6D ; 87.50 ms, Segment E, TCC (ADC voltage conversion)
FDB $EC23 ; 93.75 ms, Segment F, Air/Fuel Major Loop
This explanation is greatly simplified and there are a lot of things going on while the Major Segments are being executed. Some happen on every 6.25 ms interrupt, others happen every other interrupt (every 12.5 ms), etc. So 160 times a second is the most often that any one parameter or output is updated.





