Thank You very much indeed!
Meantime I figured out, that external interrupt trigerring by level
keeps triggering as long as the reason is kept.This makes continous
interrupt processing the way, that other processes are completly blocked.
I hardly ever can imagine reason for such implementation?!
So as I mentioned I implemented edge trigerring.
But now, after first int. execution the system stops reacting to any
interrupt. I have read, that EXTINT=4 (EINT2)during interrupt execution
must be written, to enable further interrupts processing. So I do.
Then I have read VicIntAddr=0 must be written; so I do.
HAS ANYONE FOUND ANYTHING ELSE?
code below:
EXT INT init:
void
SetButtonPressedISR(CTL_ISR_FN_t isr)
{
userButtonISR = isr;
// P0.16 to alternate function 2 (EINT2)
PINSEL0 |= 0x80000000;
//PINSEL1 |= 1;
EXTMODE = 4;
ctl_set_isr(EINT_INT, 1,CTL_ISR_TRIGGER_POSITIVE_EDGE, buttonISR, 0);
ctl_unmask_isr(EINT_INT);
}
INT code:
static void
buttonISR(void)
{
userButtonISR();
EXTINT = 4;
}
Tom Walsh wrote:
> rseku wrote:
>
>
>>I am testing simplest ever Crossworks CTL examples for builtin multi
>>tasking.
>>When I went through test 2 for Olimex(LPC2138), I found that button ISR
>>once energized never stops.I think, that button press event should be
>>generated only once, when button is pressed ( I am not certain if LPC is
>>working based on Edge or Level interrupt signal)
>>
>>
>>
>
> If you are experiencing continual execution of your ISR code, then it
> would probably be that the interrupt is in "level" rather than "edge"
> mode. See section 3.5 (System Control Block: External Interrupt Inputs)
> of the Philips manual for the 2138.
>
> TomW
>Message
Re: [lpc2000] Corssworks CTL examples
2005-10-18 by rseku
Attachments
- No local attachments were found for this message.