DSPRelated.com
Forums

INterrupt handling problems in VisualDSP++

Started by dalvi kiran July 22, 2003
Hi All,
I am writing programs in "ASM + c" for ADSP2184.
All part of interrupt hadling i am writing in ASM. I
am using defualt file 218x_int_tab.asm for interrupt
hadling.
I have to do following task. After specific time
interval, i want to receive data from SPORT 1 port.

For that at start i mask all interrupts except Timer
interrupt. During timer function i will get SPORT1
interrups but i wantt to ingnore them. In timer
interruipt routine i have unmasked SPORT1 interrupt.
That means i will respond to SPORT1 interrupts only
after getting Timer interrupt.

But i am getting probelm because whenever , i get
Timer interrupt before jumping to Timer routine it
saves IMASK reg. & restores it after getting RTI
commond.

So when it gets Timer interrupt it unmasks SPORT1
interrupt & after getting RTI , it againg MAsks SPORT1
interrupt.

What i should to do get over this.

Thanking you
Kiran

__________________________________



On Mon, 21 Jul 2003, dalvi kiran wrote:

> For that at start i mask all interrupts except Timer
> interrupt. During timer function i will get SPORT1
> interrups but i wantt to ingnore them. In timer
> interruipt routine i have unmasked SPORT1 interrupt.
> That means i will respond to SPORT1 interrupts only
> after getting Timer interrupt.
>
> But i am getting probelm because whenever , i get
> Timer interrupt before jumping to Timer routine it
> saves IMASK reg. & restores it after getting RTI
> commond.
>
> So when it gets Timer interrupt it unmasks SPORT1
> interrupt & after getting RTI , it againg MAsks SPORT1
> interrupt.
>
> What i should to do get over this.

Change your philosophy. Use flags to determine if an
interrupt should be paid attention to, not just the imask.
So when the sport1 interrupt fires, it will check a flag
and do an immediate rti if it's to be ignored, or run
normal if it's ok.

Patience, persistence, truth,
Dr. mike