referring to the accompanying drawings , preferred embodiments of the present invention will be described . referring first to fig3 a four - cycle four - cylinder internal combustion engine 1 is of the electronically controlled type . a microcomputer 2 functions as a controller , and includes a central processing unit ( cpu ) 3 , a read - only memory ( rom ) 4 , a random access memory ( ram ) 5 , and an input / output ( i / o ) port 6 . the microcomputer 2 receives an intake air amount signal qa derived from an airflow meter 8 which is installed in an intake pipe 7 , an opening degree signal tvo derived from an opening degree detecting sensor 10 which is installed in a throttle valve 9 , a coolant temperature signal tw derived from a coolant temperature sensor 11 , a reference voltage signal vs derived from an o 2 sensor 13 which is installed in an exhaust pipe 12 , and an engine revolution speed signal n derived from a crank angle sensor 21 of the photo - electric type . then , the microcomputer 2 detects a current engine operating condition , provides an ignition timing signal to each ignition plug 15 after executing an optimum ignition timing control , and also provides a fuel injection signal to a fuel injection valve 16 after executing a fuel injection amount control . referring to fig1 and 1a , the crank angle sensor 21 is incorporated in a distributer 14 , and includes a rotor plate 22 connected to a disc shaft 17 , a source of light or a light emitting diode ( led ) 107 and a photo - electric transducer or a light receiving diode ( lrd ) 109 which are arranged over and under the rotor plate 22 , respectively , and a signal processing unit ( not shown ). the rotor plate 22 is formed , on the same circumference , with four first signal slits 23 , 24 , 25 , and 26 corresponding to first , second , third , and fourth cylinders , four second signal slits 27 , 28 , 29 , and 30 which stand apart from the four first signal slits 23 , 24 , 25 , and 26 by a predetermined angle of circumference , respectively , and correspond also to the first , second , third , and fourth cylinders , and a single cylinder identification reference signal slit 31 . the four first signal slits 23 , 24 , 25 , and 26 are set so as to have the same length in the circumferential direction , and are disposed symmetrically with the disc shaft 17 as a center , i . e ., at equal spatial intervals of 90 ° (= 180 ° crank angle ). similarly , the four second signal slits 27 , 28 , 29 , and 30 are set so as to have the same length in the circumferential direction , and are disposed symmetrically with the disc shaft 17 as a center . each length of the first slits 23 through 26 is set , as indicated by a wave form chart ( a ) in fig2 such that a corresponding pulse signal or a leading pulse rises in the vicinity of about 75 ° crank angle (° ca ) before a top dead center ( tdc ) in a compression stroke of the crank rotational angle , and falls in the vicinity of about 25 ° ca before the tdc . on the other hand , each length of the second slits 27 through 30 is set such that a corresponding pulse signal or a trailing pulse rises in the vicinity of about 10 ° ca before the tdc , and falls in the vicinity of about 5 ° ca before the tdc . in this manner , each width from a high ( h ) level edge to a low ( l ) level edge of the first signal slits 23 through 26 and the second signal slits 27 through 30 is determined . a length of the reference signal slit 31 in the circumferential direction is set so as to be shorter than the length of each of the first and second slits 23 through 30 . the reference signal slit 31 is disposed in the vicinity of the first signal slit 23 , i . e ., within about 30 ° ca after the tdc . the h level edge of the reference signal slit 31 is set at the position of about 5 ° ca after the tdc . the light passing through each of the slits 23 through 31 causes an 180 ° ca signal as indicated by the wave form chart ( a ) in fig2 and an on - off pulse signal of a cylinder identification reference signal to be generated . the microcomputer 2 which receives each of the pulse signals measures a time between the 180 ° ca signals to derive the engine revolution speed n , and carries out a variable ignition timing control based on an ignition timing value data which is derived from a function between the engine revolution speed n and the intake air amount signal qa from the airflow meter 8 and is previously stored in the ram 5 ( refer to a wave form chart ( c ) in fig2 ). the microcomputer 2 also carries out a fixed ignition timing control according to the engine revolution speed n , not using the ignition timing value data when the engine is idling or decelerating ( refer to wave form charts ( b ) and ( b &# 39 ;) in fig2 ). it is to be noted that a high ( h ) or on level width of the 180 ° ca pulse signal is 70 ° ca and a low ( l ) or off level width thereof is 110 ° ca . accordingly , when the engine 1 is warm , the h level width is 70 ° ca , and the l level width is 110 ° ca . on the other hand , when the engine 1 is cold , the h level width is 50 ° ca , and the l level width is 130 ° ca . it is also to be noted that , in the above - mentioned fixed ignition timing control , a power supply duration is the same as the 180 ° ca pulsewidth and the ignition timing is the same as the timing of the falling edge of the pulse signal . on the other hand , in the variable ignition timing control , the power supply duration is given by a power supply angle which is derived from a power supply duration data stored in the rom 4 of the microcomputer 2 , and the ignition timing is set to an advance angle timing of a predetermined angle based on an h level of the 180 ° ca signal . additionally , the microcomputer 2 carries out the fuel injection control according to the engine driving condition . in the initial stage of engine start , for example , a simultaneous fuel injection for all cylinders is carried out base on the crank angular position detecting signal . on the other hand , under a predetermined driving condition , a so - called sequential injection is carried out : fuel is sequentially injected before the tdc in the compression stroke of each of the cylinders base on the crank angular position detecting signal and the cylinder identification reference signal . referring to fig4 a and 4b , a description will be made with regard to a basic control executed by the microcomputer 2 . a basic routine shown in fig4 a and 4b is interrupted on the rising edge or the falling edge of the pulse signal outputted from the crank angle sensor 21 . in a step s1 , it is determined whether a start switch is turned on or not . if the start switch is turned on , the routine proceeds to a step s2 in which a coolant temperature is read in the ram 5 . subsequently , in a step s3 , a value of the coolant temperature read in the step s2 is set as that upon engine start . in a subsequent step s4 , a time between the pulse signals ( dt 1 through dt n in fig2 ) is read in the ram 5 , then the routine proceeds to a step s5 in which a time ratio ( ddt ) is obtained from the following expression : dt n - 1 / dt n . in a step s6 , it is determined whether a number of occurrences of the pulse signal inputted is more than a predetermined value or not after turning on the start switch . if the answer to the inquiry in the step s6 is no , i . e ., the number of occurrences of the input pulse signal is less than , for example , 5 during less than two rotations of a crankshaft such as in the initial stage of engine start , the cylinder number is not identified . thus , the routine proceeds to a step s7 . in the step s7 , a flag flaga is set to 0 ( zero ) indicating that the fuel injection is carried out once for every two occurrences of the h level signal , and a primary ignition coil is supplied with electricity at the h level signal and interrupted at the l level signal , as illustrated by a chart ( a ) in fig6 then the routine proceeds to a subsequent routine as will be described hereinafter . on the other hand , if the answer to the inquiry in the step s6 is yes , the routine proceeds to a step s8 in which it is determined whether the pulse signal is at the h level or not . if the pulse signal is not at the h level , the routine proceeds to the subsequent routine in response to an interrupt caused by the rising edge of the pulse signal . in the step s8 , if the pulse signal is at the h level , the routine proceeds to a step s9 in which it is determined whether the time ratio obtained in the step s5 is more than a predetermined value or not . specifically , it is determined whether a ratio of a previous h level angle θ on ( theta on ) to a current l level angle θ off ( theta off ) is more than , for example , 3 , or not ( refer to fig2 ). it is to be noted that the predetermined value is set to &# 34 ; more than 3 &# 34 ; so as to allow the resolution of a pulsewidth to be exhibited , and a fixed advance angle range ( 5 ° ca through 10 ° ca ) of the ignition timing to be achieved . if the ratio θ on / θ off is more than 3 , i . e ., the cylinder identification reference signal is at the h level ( oh ) once for every five occurrences thereof , the routine proceeds from the step s9 to a step s10 in which a flag flagb indicative of the cylinder identification is set to 1 , thus simply identifying the cylinder number . in a step s11 , the normal engine revolution speed n is calculated based on a measured time t 180 between the 180 ° ca signals as will be described hereinafter from the following expression : n = 60 / 2 × t 180 . in a subsequent step s12 , it is determined whether the start switch is turned off or not . if the start switch is turned off , the routine proceeds to a step s13 in which it is determined whether the engine revolution speed n is more than , for example , 400 r . p . m ., or not . if the engine revolution speed n is more than 400 r . p . m ., the routine proceeds to a step s14 in which it is determined whether a flag flagc is set to 1 or not . specifically , in the steps s12 , s13 , and s14 , it is determined whether all conditions such as state of the start switch , a value of the engine revolution speed n , etc . allow the sequential control or not . if all the answers to the inquiries in the steps s12 , s13 , and s14 are yes , the routine proceeds to a step s15 in which the flaga is set to 2 indicating that the sequential fuel injection control and the ignition advance angle control are carried out as illustrated by a chart ( c ) in fig6 then the routine proceeds to a subsequent routine as will be described hereinafter . on the other hand , if the answer to the inquiry in any one of the steps s12 , s13 , and s14 is no , the routine proceeds to a step s16 in which it is determined whether the coolant temperature upon engine start is greater than a predetermined value t ws or not , i . e ., whether the engine is warm or cold . if the coolant temperature upon engine start is greater than the predetermined value t ws , i . e ., the engine is warm , the routine proceeds to a step s17 in which the flag flaga is set to 1 indicating that the simultaneous fuel injection is carried out twice every one rotation of the crankshaft , and that the fixed power supply angle and ignition timing controls are executed every two falling edges , as illustrated by a chart ( b ) in fig6 then the routine proceeds to a subsequent routine as will be described hereinafter . on the other hand , if the coolant temperature upon engine start is equal to or less than the predetermined value t ws , i . e ., the engine is cold , the routine proceeds from the step s16 to a step s18 in which the flaga is set to 1 indicating that the simultaneous fuel injection is carried out twice for every one rotation of the crankshaft , and that the fixed power supply angle and ignition timing controls are executed once for every one falling edge , then the routine proceeds to the subsequent routine . in the step s9 , if the answer to the inquiry is no , i . e ., in a case except that the cylinder identification reference signal is at the h level ( oh ), the routine proceeds to a step s19 in which it is determined whether the flag flagb is set to 1 or not , i . e ., whether the cylinder identification reference signal is present or not . if the flagb is set to 1 , the routine proceeds to a step 20 in which an m cylinder ( mcyl ) is set to 0 ( zero ), thus setting a reference . it is to be noted that the mcyl is a variable using numbers 0 , 1 , 2 , and 3 , and corresponds to an order of the ignition and the fuel injection . with the four - cylinder engine 1 , for example , the mcyl corresponds to from 75 ° ca before a bottom dead center in an explosion stroke to 105 ca after the bottom dead center in the explosion stroke for the first cylinder when the number is 0 ( zero ), the third cylinder when the number is 1 , the fourth cylinder when the number is 2 , and the second cylinder when the number is 3 , respectively . it is also to be noted that , if flgb = 1 in the step s19 , the mcyl is set to 0 ( zero ). in a subsequent step s21 , the flag flagc is set 1 . then , in a step s22 , in order to obtain the engine revolution speed n as described hereinbefore , the time t 180 between 180 ° ca signals is calculated based on an expression : ## equ1 ## specifically , since mcyl = 0 in the step 20 , the time t 180 is measured by adding four time durations : dt 2 + dt 3 + dt 4 + dt 5 . in a subsequent step s23 , in order to set a reference of the ignition timing , a time dtb between the l level signals ( 110 ° ca ) of the 180 ° ca signal is calculated . in this case , since the cylinder identification reference signal is present , the time dtb is calculated based on an expression : ## equ2 ## which includes this reference signal . that is , it is measured by adding three time durations : dt 3 + dt 4 + dt 5 . subsequently , in a step s24 , the time dtb between the l level signals is updated in turn , and a new reference of the ignition timing is set , and stored in the ram 5 . this new reference is used for calculating a term of the angular acceleration . in a step s25 , the flag flagb is set to 0 ( zero ). it is to be noted that flagb = 0 indicates that the cylinder identification reference signal is not present . in this case , since mcyl = 0 in the step s20 , the third cylinder is identified if 0 + 1 , the fourth cylinder is identified if 0 + 2 , and so forth . then , the routine proceeds from the step s25 to the step s11 as described hereinbefore . on the other hand , if the answer to the inquiry in the step s19 is no , it indicates that the cylinder identification reference signal is not present . thus , the routine proceeds to a step s26 in which the mcyl is incremented by 1 . in a step s27 , the time t 180 between 180 ° ca signals is calculated based on an expression : ## equ3 ## in a subsequent step s28 , the time dtb between the l level signals is calculated based on the time dt n , then the routine proceeds to the step s24 as described hereinbefore . next , descriptions will be made with regard to the routines when flaga = 0 , flaga = 1 , and flaga = 2 , respectively . referring first to fig5 the routine when flaga = 0 will be described . in this case , the cylinder number is not yet identified . subsequently to the step s7 , the routine proceeds to a step s30 in which it is determined again whether the pulse signal is at the h level or not . if the answer to the inquiry in the step s30 is yes , the routine proceeds to a step s31 in which the electricity is supplied to the primary ignition coil at a crank angle in the vicinity of about 75 ° ca before the top dead center ( tdc ) in the compression stroke . in a subsequent step s32 , it is determined whether an ignition is carried out at the h level of a previous pulse signal or not . if the answer to the inquiry in the step s32 is yes , the routine returns to start without any processing , whereas if no , the routine proceeds to a step s33 in which the simultaneous fuel injection for all cylinders is carried out . specifically , in the step s33 , as shown in fig6 the simultaneous fuel injection is carried out once for every two occurrences of the h level signal , i . e ., it takes place five times for every four rotations of the crankshaft . the same result can be obtained by performing the simultaneous fuel injection once for every two occurrences of the l level signal . this contributes to improvement in a startability of the engine 1 and a stability of the rotation thereof . on the other hand , in the step s30 , if the pulse signal is not at the h level , the routine proceeds to a step s34 in which the electricity to the primary ignition coil is interrupted , i . e ., the ignition is carried out at the crank angle in the vicinity of about 5 ° ca before the tdc in the compression stroke . then , the routine returns to start . it is to be noted that , in such a condition that the cylinder number is not identified , the ignition is carried out upon occurrence of the cylinder identification reference signal as well as the above - mentioned crank angular position detecting signal . since the cylinder identification reference signal is generated at about 5 ° ca after the tdc in the compression stroke , and the ignition is carried out immediately after the compression stroke , combustion within the engine is not subjected to any bad influence . referring to fig7 the routine when flaga = 1 will be described . in this case , the cylinder number has been identified , and the engine falls into a driving condition such as a start - up . subsequently to the step s18 , the routine proceeds to a step s40 in which it is determined whether the pulse signal is at the h level or not . if the pulse signal is at the h level , the routine proceeds to a step s41 in which it is determined whether the time ratio is more than a predetermined value or not , i . e ., more than 3 or not . if the time ratio is more than 3 , a flag indicative of the cylinder identification is set to on state , then the routine returns to start . on the other hand , if the answer to the inquiry in the step s40 is no , the routine proceeds to a step s43 in which it is determined whether the flag indicative of the cylinder identification is set to the on state or not . if the answer to the inquiry in the step s43 is yes , the routine returns to start , whereas if no , the routine proceeds to a step s44 . in the step s44 , the electricity to the primary ignition coil is interrupted , and the ignition begins to take place based on the above - mentioned fixed ignition timing control . on the other hand , if the time ratio is not more than 3 , i . e ., when the pulse signal other than the cylinder identification reference signal is at the h level , the routine proceeds to a step s45 in which the electricity is supplied to the primary ignition coil . in a subsequent step s46 , it is determined whether the fuel injection is carried out at the h level of the previous pulse signal or not . if the answer to the inquiry in the step s46 is yes , the routine proceeds to a step s48 in which the flag indicative of the cylinder identification is set to off state . then , the routine returns to start . if the answer in the step s46 is no , the routine proceeds to a step s47 in which the simultaneous fuel injection for all cylinders is carried out twice for every one rotation of the crankshaft . referring to fig8 the routine when flaga = 2 will be described . subsequent to step s15 , the routine proceeds to a step s50 in which it is determined whether the pulse signal is at the h level or not . if the answer to the inquiry in the step s50 is no , the routine returns to start , whereas if yes , the routine proceeds to a step s51 in which it is determined whether the time ratio is more than 3 or not . if the time ratio is more than 3 , the routine returns to start . on the other hand , if the time ratio is not more than 3 , the routine proceeds to a step s52 in which the ignition / power supply based on the variable ignition control is carried out in each cylinder corresponding to the mcyl according to the sequential control , and also the fuel injection is carried out for each of the cylinders . then , the routine returns to start . with such an ignition timing control system , since the slits 23 through 31 are disposed on the same circumference of the rotor plate 22 , a simple structure thereof can be achieved , resulting in easy machining work and reduction of manufacturing cost . further , in the initial stage of engine start where the cylinder number cannot be identified , since the advance angle is changeable from a value when the engine 1 is cold to the same after the engine 1 is warm , the result is an improvement in the startability when the engine 1 is cold . still further , since the cylinder identification reference signal slit 31 is disposed within about 30 ° ca after the top dead center ( tdc ) in the compression stroke , the ignition is carried out surely before and immediately after the tdc even if it takes place base on the cylinder identification reference signal as well as the crank angular position detecting signal in the event the cylinder number cannot be identified such as in the initial stage of engine start . as a result , the ignition in the suction stroke is surely prevented from taking place . having described the preferred embodiment in which the present invention is applied to the four - cylinder engine 1 , it is to be noted that the present invention is not limited to such an application , and also applicable to six - cylinder and eight - cylinder engines . further , it is to be noted that , for detecting the engine temperature , a lubricating oil temperature sensor and a cylinder head temperature sensor can be used in place of the coolant temperature sensor 11 .