Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] Re: EINT2 Problems on LPC2124

2005-09-09 by Gilles FAURIE

Hey,

If i read the errata sheet you must program VPBDIV as the same value of 
EXTMODE. So i think that you must code :

  SCB_VPBDIV = 0x00; // --- workaround for EXTINT2 bug
  SCB_EXTMODE = 0x04; // set mode for EINT2
  SCB_VPBDIV = 0x04; // !!!!!!! --- (!!!!!! to program EXTMODE !!!!!)
  SCB_VPBDIV = 0x01; // --- end workaround (!!!!!! true value of VPBDIV 
!!!!!!!)



----- Original Message ----- 
From: "fbpmania" <pmania@...>
To: <lpc2000@yahoogroups.com>
Sent: Wednesday, September 07, 2005 4:05 PM
Subject: [lpc2000] Re: EINT2 Problems on LPC2124


Hey Gilles Faurie,

i checked the Errata sheet and build in the workaround.
I´ve modified my Code to this:

void init_interrupts(void){
  SCB_MEMMAP = 1;         //interrupt vectors reside in flash
  toggle_led(28);toggle_led(28);toggle_led(28); // Function Start -
Blink 3 times
  VICProtection = 0;  //No Protection
  VICIntEnClear = 0xffffffff;  //Clear all Interrupts

  SCB_VPBDIV = 0x00; // --- workaround for EXTINT2 bug
  SCB_EXTMODE = 0x04; // set mode for EINT2
  SCB_VPBDIV = 0x02; // ---
  SCB_VPBDIV = 0x01; // --- end workaround
  SCB_EXTINT = 0x04; // clear INT flags
  VICIntSelect = 0x00000000; // EINT2 is IRQ
  toggle_led(25);
  VICIntEnable = (1<<VIC_EINT2); // Enable EINT2
  VICVectAddr0 = (unsigned long)EINT2_ISR;
  VICVectCntl0 = (1<<5) | (1<<VIC_EINT2);
  toggle_led(25);
  enableIRQ();
  toggle_led(25);
}

EnableIRQ comes from the armVIC.h , which is in the example dir of
WinARM.
My problem is, that the System hangs now on the execution of
"enableIRQ()".

Could it be, that there are some Problems with my Startup Code ?
I use the Startupcode from the UART Example included in WinARM.

Greetings






Yahoo! Groups Links

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.