cancel
Showing results for 
Search instead for 
Did you mean: 

ST72F324 -> Timer interrupt problem

il_maniaco
Associate II
Posted on July 28, 2003 at 08:03

ST72F324 -> Timer interrupt problem

8 REPLIES 8
il_maniaco
Associate II
Posted on July 22, 2003 at 14:50

Hello!

I've got a problem with the timer handle: my program don't call the timer interrupt... and it's very simply!

Is there any miss configuration?

I attach the code file, i hope there is someone that can understand where i wrong...

Thanks for all...

P.S.: the interrupt vector is ok (0xFFEAh for this uC) so i really don't know why it doesn't work correctly...

P.P.S.: i use a crystal resonator, with the classic configuration (xtal and two capacitors), and my device communicates correctly with my InDart...

[ This message was edited by: Maniaco on 22-07-2003 18:23 ]
itsmejatinus
Associate II
Posted on July 23, 2003 at 01:26

Try to initialize the TAOC1LR & TAOC1HR with some values.

Other thing in your software, if you want to enable watchdog then set the bit 7 (WDGA) otherwise there is no use to refresh the watchdog register.
il_maniaco
Associate II
Posted on July 23, 2003 at 06:09

Thank for the help, Ranjeet... but the problem persist.

I attach the program with your modifications... I really don't understand where is the problem, I'll try other solutions, but if someone knows the reason of this strange behavior please contact me or reply this thread.

Ciao!

P.S.: The problem isn't in the watchdog: i tried to define WATCH_DOG_REFRESH as nothing or *WDGCR = 0xFF (for the activation) but there's no changes on the program...

[ This message was edited by: Maniaco on 23-07-2003 09:48 ]

itsmejatinus
Associate II
Posted on July 24, 2003 at 01:00

Initialization for the timer appears to be ok. Initialise the sys timer[0] before enabling the interrupt. You can also check your clock source, may be outputting it on the MCO pin. Which device are you using ? Please check your interrupt vector table according to that.

How are you able to check that the interrupt routine is not executing?

I think you have n't written anything to check in the ISR.

il_maniaco
Associate II
Posted on July 24, 2003 at 07:49

Dear Ranjeet,

unfortunately i already tried to inizialize the SysTimer array, but it's useless...

I verified the MCCSR status, and the MCO bit is 0 (forced the inizialization to 0), but still it doesn't work correctly.

The uC is a ST72F324J6T6 (I already tried to change uC...), the visual debugger is ''STVD7 for InDART-STX''.

I tried set all interrupt vectors on the same function, put a breakpoint on the top of the interrupt function, but the program never pass through that code... although that code has been compiled and linked (I can put an interrupt into that code).

How can I check my ISR? I enabled timer interrupt via TACR1 and a simply RIM.

I'll try to contact the emulator producer's technical staff, I hope that they will can help me...

Thank for all.

ciao!

stephanie
Associate II
Posted on July 25, 2003 at 05:59

Check your code with a MCU: the inDART does not manage interrupts in Debug mode for 52x/32x family...

ppoletto
Associate II
Posted on July 25, 2003 at 06:13

Hi,

inDART-STX used with ST7 devices based on HDFlash (521, 32X, 62X) has some limitations because these devices don't have the debug peripheral. More information about these limitations are written in the ''Addendum User's Manual'' (PDF format).In particular:

''Real-time execution only occurs when no breakpoints are set. However, you can set “low-level� breakpoints (and still get real-time execution) by putting the TRAP instruction in your source code. When a TRAP instruction is executed, the program stops just as if a breakpoint was set. The advantage of using this technique is that you can have as many TRAP instructions (and therefore set as many “low-level� breakpoints) and still the program will be executed in real-time. However, every time you insert/remove a TRAP instruction you need to recompile your program. ''

Piero
il_maniaco
Associate II
Posted on July 28, 2003 at 08:03

OK, the problem is resolved.

If we use a breakpoint the program never call the interrupt routine.

I attach the file with the trap instruction that allow to break the emulation and verify/modify the variable (like a regular breakpoint).

Thank for all, ciao!