Patent ID: 8447493

Claim:
An ignition timing controller of an internal combustion engine, the controller setting a control target value of ignition timing by correcting a basic value set based on an operating state of the engine using a feedback correction term updated depending on whether knocking has occurred and a learned value updated based on the feedback correction term, the controller learning a first learned value and a second learned value separately, the first learned value compensating for a change amount of the ignition timing caused by time-dependent change of the engine, and the second learned value compensating for a change amount of the ignition timing caused by a factor other than the time-dependent change of the engine each as the learned value separately from each other, the controller comprising: setting means that sets the control target value by correcting the basic value using the first learned value and the second learned value in a first engine operating range, in which the time-dependent change of the engine influences the ignition timing to a great extent, wherein the setting means sets the control target value by correcting the basic value using only the second learned value in a second engine operating range, in which the time-dependent change of the engine influences the ignition timing to a small extent; permission means that permits only learning of the first learned value in the first engine operating range, and permits only learning of the second learned value in the second engine operating range; determination means that determines whether there is a possibility that fuel has been fed to a fuel tank that retains fuel to be supplied to the engine; and prohibition means that prohibits the learning of the first learned value for a predetermined period after the determination means determines that there is a possibility that fuel has been fed to the fuel tank.