Thank you for you all. Actually I missed the double underscore in __NEAR_SEG. The interrupt routine now works nice in a project without Processor Expert.
However, in a project with Processor Expert, a warning "L1912: object _VECTOR_22 overlaps with another" occurs. Is this related to the vector.c, which it seems that Processor Expert has defined something for interrupt vectors?
Attached is the project file.
Thanks again!
Message Edited by Zaku on 2006-06-07 08:26 AM
Hello
Yes in fact the message "L1912: object _VECTOR_22 overlaps with another" is due to the fact that Processor Expert is defining the vector table in vector.c.
Note that if you are using Processor Expert and if you are using interrupt functions, which are not generated by Processor Expert we recommend you to proceed as follows:
- Define your interrupt function without the vector number in your source file (i.e.
interrupt void ADT_Interrupt(void) { ... }
- Add an "InterruptVector" Bean Set "Interrupt Vector" to the appropriate interrupt source and set "ISR name" to your interrupt function name.
This way the name of your interrupt function will be added to the Processor Expert generated vector table.
I hope this helps.
CrasyCat
Hello
I would need to look at the implementation of the function _ATD_complete (with all pragmas specified right before and right after the implementation.
CrasyCat
I do not reqognise the error, but one possible cause could be that the ISR is in paged memory. Try putting it is the un-paged area:
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void _ATD_Complete(void) {
.....
}
#pragma CODE_SEG DEFAULT