Fehlermeldung in C Programm auf AVR Studio

#815931
Lesenswert?

hier mal der Teil des Quellcodes der den Fehler verursacht:

#pragma vector=USART_RX_vect
__interrupt void rx_buffer_full(void) // <-- diese Zeile verursacht den 
Fehler !!!
{
  unsigned char ucValue;
  static unsigned char ucRXPrompt = 0;
                        // yes -> reset transmission
    ucValue = UDR2;              // read character from RX-buffer
    if(ucRXI == WAIT_STATE)          // last instruction evaluated?
    {
        if( ucValue == 0x3e )  // Prompt (>) detected
        {
          ucRXPrompt = 1;                            // set flag, that 
prompt was received
        }
        if( (ucValue == 0x0d) && (ucRXPrompt == 1) )  // Carriage Return 
detected
        {
          ucRXI = PROMPT_DETECTED;            // set flag, that answer 
was received completely
          ucRXPrompt = 0;
          ucSioPointer = 0;
        }
        else if(ucValue == 0x0d)
        {
        PORTH ^= (1<<PB5);
          if( (ucSioBuffer[ucSioPointer-2] == 'B') && ( 
ucSioBuffer[ucSioPointer-1] == 'C') )
          {
            PORTH ^= (1<<PB5);
            ucRXI = BAD_COMMAND;
          }
          else if( (ucSioBuffer[ucSioPointer-2] == 'C') && ( 
ucSioBuffer[ucSioPointer-1] == 'F') )
          {
            PORTH ^= (1<<PB5);
            ucRXI = COMMAND_FAILURE;
          }
          else if( (ucSioBuffer[ucSioPointer-2] == 'N') && ( 
ucSioBuffer[ucSioPointer-1] == 'D') )
          {
            PORTH ^= (1<<PB5);
            mode = 3;
            ucRXI = NO_DISK;
            PORTH ^= (1<<PB5);
          }
          ucSioPointer = 0;
        }
        else
        {
          if(ucSioPointer < SIO_BUFFER_SIZE)      // buffer full?
            ucSioBuffer[ucSioPointer++] = ucValue;// no->save character
          else                                    // yes -> buffer 
overflow (error)
          {
            ucRXI = WAIT_STATE;
            ucRXPrompt = 0;
            ucSioPointer = 0;
          }
        }
    }
}



Die Fehlermeldung ist wie folgt:

../uart.c:76: error: expected '=', ',', ';', 'asm' or '__attribute__' 
before 'void'



??? Was will er mir damit bloß sagen??
#816490
Lesenswert?

Rufus t. Firefly wrote:
>
1
> #pragma vector=USART_RX_vect
2
> __interrupt void rx_buffer_full(void)
3
>
>
> Bist Du Dir sicher, daß das die von Deinem Compiler verstandene Art der
> Deklaration/Definition eines Interrupthandlers ist? Mir riecht das arg
> nach IAR-Syntax.

Nein, bin ich nicht. Du hast recht, das Prog wurde in IAR-Syntax 
geschrieben. Ich hab da echt fast keine Erfahrung mit und dachte ich 
bekomms unter AVR Studio zum laufen...aber...falsch gedacht.

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