??? 09/23/04 03:09 Read: times |
#77969 - RE: !! PROBLEM SOLVED!!!! Responding to: ???'s previous message |
I' ve removed 'using' in the interrupt declaration, now the program runs without any problems.
The only thing that USING does is to select the specified register bank on entry to the ISR and restore it on exit. If using is NOT used, the registers used in the ISR are saved on the stack. The “freeze” disappears if I program the two interrupt with the same priority level (level 0). So, from this, I take it you now have both interrupts enabled, low priority, using the default register bank (so used registers are pushed on the stack). That begs a few questions. Since we have several thousand developers successfully using the using keyword, I don't think that's where the problems stems from. 1. Have you tried setting the serial interrupt priority high and the timer priority low? 2. Have you contacted Dallas Semiconductor to see if there are any errata on the DS5240 regarding timer 0 and serial port interrupts, priorities, and register banks? You'll probably have to call them. All errata are not posted on the web site. Also, it's probably worth your time to contact Keil technical support so we can try to isolate the problem and see what causes it. At least hat was we can document it for anyone else who may have the same or a similar problem. Jon |