This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Interrupt numbering

I have noticed that the Kiel compiler doesn't produce the correct interrupt vector if 8051 interrupt numbers are used. For example for external interrupt 0 (IE0), the interrupt number has to be 0, instead of 1 to produce a jump at location 1. Example:

void edge1 (void) interrupt 0{ /*produces correct code

while

void edge1 (void) interrupt 1{ /*produces wrong code

This is the case with all the interrupts I have used. My questions is what do you have to do to produce a reset vector? Reset is interrupt number 0 in 8051 numbering. Using -1 or 255 both produce a compile error.

Parents
  • although I have to confess I remain curious as to what the OP was trying to achieve.

    I agree with Jack

    Excellent job
    again, I agree with Jack

    Erik

    My guess is that the OP coded something without reading the 'background' (Interrupt_vector_address - 3)/8) before typing interrupt numbers in some code and got upset that Keil did not agree with his assumptions

Reply
  • although I have to confess I remain curious as to what the OP was trying to achieve.

    I agree with Jack

    Excellent job
    again, I agree with Jack

    Erik

    My guess is that the OP coded something without reading the 'background' (Interrupt_vector_address - 3)/8) before typing interrupt numbers in some code and got upset that Keil did not agree with his assumptions

Children