Probleme Atmega 128 Code von IAR nach AVR-Studio

Gast #543043
Lesenswert?

Hallo Leute

Habe ein Problem bei der Übertragung eines Atmega128 Projektes vom 
IAR-Compiler nach AVR-Studio. Es handelt sich dabei um folgenden 
Code-Ausschnitt:
1
//**************************************************************************************
2
// USART 0 (DVK) Received Complete Interrupt
3
// Use for RS232 communication
4
//**************************************************************************************
5
#ifdef _IAR_WB
6
  #pragma vector = USART0_RXC_vect
7
  __interrupt void USART0_RXC_interrupt(void)
8
#else  
9
  interrupt [USART0_Receive] void USART0_RXC_interrupt(void) 
10
#endif
11

12
{   
13
   data2pc[ind_tab]=UDR0;
14
    
15
   if(data2pc[ind_tab]=='\r')   //End of Command
16
      ReceivedCMD=1;    
17
   else                         //Next byte
18
   { 
19
      ind_tab++; 
20
   } 
21
}

Bei der #pragma Anweisung handelt es sich ja um eine Compilerspezifische 
Anweisung für den IAR.
Kann mir jemand die genaue Funktion dieser Zeilen erklären?:
1
#ifdef _IAR_WB
2
  #pragma vector = USART0_RXC_vect
3
  __interrupt void USART0_RXC_interrupt(void)
4
#else  
5
  interrupt [USART0_Receive] void USART0_RXC_interrupt(void) 
6
#endif
Wie kann ich dies für AVR-Studio ändern?
Wäre zum Beispiel "ISR(USART0_RX") möglich?

Danke schonmal

Gruß Micha
Gast #543456
Lesenswert?

wenn der Kommentar "USART 0 [...] Received Complete Interrupt" stimmt, 
wäre die AVR-GCC 'übersetzung' "ISR(USART0_RX_vect){...}" korrekt - ich 
hab nicht nach der IAR-doku geschaut, ich will aber auch keinen IAR-Code 
übersetzen ;)
Gast #543532
Lesenswert?

Wenn ich das richtig interpretiere, dann ist das die ISR für den 
USART0_Receive-Interrupt.


Ich hab jetzt keine Mega128-Docu griffbereit, aber daraus wird im gcc so 
etwas wie

#include <avr/interrupt.h>

ISR(USART0_RX_vect ) // USART0_RX_vect  bitte nochmal überprüfen
{
...
}

Oliver
Gast #543806
Lesenswert?

Genau so hab ich mir das auch gedacht.
Leider tut der Quellcode noch nicht so richtig. Aber der Teil kann 
schonmal compiliert werden.
Muss noch paar Fehler finden.

Danke für die Antworten

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren