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
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?
I have overcome the error message above. In the Options for Target window on the C51 tab, I have had to tick the 'Interrupt Vectors at Adrress '0x0000'. There is no erro message when I compile now. But, the processor is still not responding the keypad.
Why does the ISR contain a delay??
Delays in ISRs are seldom a good idea...
Its part of the debounce. I've used it on a previous program with no ill effects.
But I don't think this is reason th e micro is not servicing the interrupt. I'll take another look at the hardware larter today.
nice to c some revent information on following web pages. microcontroller51.blogspot.com/ and see also http://picinf.blogspot.com/