PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem Compiler mit ISR Hilfe



Dietmar12
02.02.2008, 19:36
Hallo zusammen,

da ich neu hier bin, erst einmal Willkommen!

Ich versuche mich gerade in den Controller Mega128 einzuarbeiten, scheitere aber schon am C-Compiler bei der Interrupt service routine.
Vielleicht ist es nur was kleines und man kann mir gleich den richtigen Tipp geben.

Ich versuche den Interrupt 31 für die RX der Uart1 abzufangen und mit einem echo zu reagieren:

#pragma interrupt_handler uart1_rx_isr:31

void uart1_rx_isr(void)
{
unsigned char uc_a;
uc_a = UDR1;
UDR1 = uc_a;
}

bekomme aber von compiler (oder Linker), blicke hier mit der Umgebung (ICCAVR) noch nicht richtig durch, folgendes:

C:\Programme\AVR\bin\imakew -f LED.mak
iccavr -c -e -D__ICC_VERSION="7.13A" -DAT90S8515 -l -g -Wa-W C:\Programme\AVR\examples.avr\led.c
iccavr -o LED -g -e:0x2000 -Wl-W -bfunc_lit:0x1a.0x2000 -dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S2 @LED.lk
!ERROR file 'led.o': undefined symbol '_uart1_rx_isr'
!E led.o(93): Code address 0:0x3c already contains a value
!E led.o(93): Code address 0:0x3d already contains a value
C:\Programme\AVR\bin\imakew.exe: Error code 1
Done: there are error(s). Exit code: 1. Sat Feb 02 19:09:54 2008

hab bis jetzt mit den AVR' noch nichts zu tun gehabt. bei den 8081 Kernen gings bislang immer so problemlos.

Vielen Dank
Gruß
Dietmar aus Erlangen

_werwurm_
02.02.2008, 20:40
ich glaube das muß uart0_rx_isr heißen .. der chip hat glaube ich nur eine serielle schnittstelle und die hat nummer 0 .. oder? ( *unsicher* )


edit: nee hat doch 2 stück .. sorry

Ceos
02.02.2008, 21:07
gut möglich das du da mit einer präcompileranweisung kollidierst, nenn uart1 mal in u_art_1 um, da gibt es sicher ne definition für
#define uart1 IRGENDWAS
und dein compiler kommt damit nicht klar