--- In lpc2000@yahoogroups.com, "theothervmax" <vmax@...> wrote:
>
> --- In lpc2000@yahoogroups.com, "sifiland" <sifiland@> wrote:
> >
> > Hi,
> >
> > If I let Timer0 with FIQ run, then the program jumps either in
> > Default_handler or makes RESETS. Timer0 with IRQ runs completely
> > normally.
> >
> > What can the cause?
> > Thanks.
> >
> > µC: LPC2136
> > compiler: IAR
> >
> > __fiq __arm void fiq_handler(void)
> > {
> > void (*interrupt_function)();
> > unsigned int vector;
> >
> > // Interrupt-Vektor load
> > vector = VICVectAddr;
> > interrupt_function = (void(*)())vector;
> >
> > // call Interruptfunktion
> > (*interrupt_function)();
> >
> > // Interrupt reset
> > VICVectAddr = 0;
> > }
> >
> > void Int_Timer0(void)
> > {
> > //
> > ...
> > //
> > T0IR=0xFF;
> >
> > }
> >
>
> Hi,
> I think you've just changed "__irq" qualifier in IAR's sample IRQ
> handler to "__fiq". As a result, nothing works.
> The main reason is that handling IRQ and FIQ is quite different and
> it's no use trying to get the handler address from VICVectAddr when
> FIQ occurs.
> If you have set up FIQ correctly in "Startup.s", try to rewrite FIQ
> handler so that it called "Int_Timer0()" directly.
>
> Regards,
> Max
>
It seems to function. I will still test
Thanks Max!
sifilandMessage
Re: FIQ Problem
2006-04-06 by sifiland
Attachments
- No local attachments were found for this message.