2005-10-16 10:25 PM
2005-10-16 10:25 PM
Hi,
I am using the following code: // Timer3 IRQ: Executed each 10ms void T3TIMI_IRQHandler (void) __irq { GPIO_BitWrite(GPIO2, 15, ~GPIO_BitRead(GPIO2, 15)); /* causes error in this ISR*/ TIM_FlagClear(TIM3, TIM_TO_IT); EIC->IPR = 1 << T3TIMI_IRQChannel; } And I receive the following error: Build target 'STR7 Eval Board RAM' assembling Startup.s... compiling Hello.c... compiling UART.c... compiling GPIO.c... linking... *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: GPIO_Config?T MODULE: C:\Keil\ARM\LIB\ST\STR71x.LIB (gpio) DEFINED: .\RAM\GPIO.obj (GPIO) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: GPIO_BitWrite?T MODULE: C:\Keil\ARM\LIB\ST\STR71x.LIB (gpio) DEFINED: .\RAM\GPIO.obj (GPIO) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: GPIO_ByteWrite?T MODULE: C:\Keil\ARM\LIB\ST\STR71x.LIB (gpio) DEFINED: .\RAM\GPIO.obj (GPIO) *** WARNING L23: UNRESOLVED EXTERNAL SYMBOLS Program Size: data=2074 const=0 code=242 Target not created If I put the: GPIO_BitWrite(GPIO2, 15, ~GPIO_BitRead(GPIO2, 15)); in the main function everything works just fine. If I put it in the ISR I get the above error. Why doesn't it work in an interrupt service routine? regards, Erik