PURPOSE: To control ignition timing within the desired value in a short time by discriminating a cylinder minimum in a variation range as a reference cylinder from that of a crank angle by cylinders, and compensating the ignition timing so as to make a reference mean crank angle of the reference cylinder settleable in the specified desired value.
CONSTITUTION: At a means 26, an ignition timing map MPIG is retrieved from intake air quantity detected by an air flow meter 16 and engine speed detected by a crank angle sensor 18, and thereby fundamental ignition timing is set out. Likewise, at a means 27, a maximum pressure crank angle is detected at each cylinder from an output signal of a cylinder internal pressure sensor 7 and a crank angle signal of the crank angle sensor 18. In addition, at a means 33, the fundamental ignition timing is compensated for timing advance or timing delay by an ignition timing compensating value calculated by a means 32, thereby calculating the ignition timing. Then, at a driving means 34, the primary side of an ignition coil 21 is energized and operated, generating high voltage at the secondary side, and this high voltage is distributed to a spark plug 9 at each cylinder for ignition.