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

Cannot get KBD interrupt to work - 89LPC922

Hi, can someone help point me in the right direction. I have a simple program that takes push button inputs and then sends them by IR led link to a receiver. It uses the printf function to drive the LED and the KBI on P0 for the p/button inputs.

The program compiles ok and the printf works if I do a printf("rtrt") just before entering the main loop where the program is supposed to sit until a KBI is detected. Problem is I cannot trigger the interrupt. Additionally, I get an L16 'unused code, ignored for . . . etc' message for the interrupt service routine. So, I think that the compiler or linker is not seeing the isr. I don't think its a hardware issue. I've checked wiring and voltage level changes on the P0 pins.

Any thoughts on this?

thanks

Jason

Parents
  • I have made the changes to the code suggested by everyone above

    1. Prinf command is moved to a function which is called in main()
    2. isr prototype declaration is removed
    3. The isr is short and only inserts a small delay and then saves PO to an extern variable called 'command'

    The problem I've got is when I compile I get the following error during the linker process:-

    L16 -uncalled segment
    segment keypad_isr

    So, the compiler is not recognizing my isr, and thats the reason I cannot generate an interrupt I believe. I cannot move onto the next stage of debugging until I resolove this.
    I wrote another small program about 1 year ago using the KBI, and that works perfectly, so I hav e got this right before.

    Has anyone got any ideas on this?

    thanks

    Jason

Reply
  • I have made the changes to the code suggested by everyone above

    1. Prinf command is moved to a function which is called in main()
    2. isr prototype declaration is removed
    3. The isr is short and only inserts a small delay and then saves PO to an extern variable called 'command'

    The problem I've got is when I compile I get the following error during the linker process:-

    L16 -uncalled segment
    segment keypad_isr

    So, the compiler is not recognizing my isr, and thats the reason I cannot generate an interrupt I believe. I cannot move onto the next stage of debugging until I resolove this.
    I wrote another small program about 1 year ago using the KBI, and that works perfectly, so I hav e got this right before.

    Has anyone got any ideas on this?

    thanks

    Jason

Children