--- 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,
MaxMessage
Re: FIQ Problem
2006-04-06 by theothervmax
Attachments
- No local attachments were found for this message.