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??
1 | #pragma vector=USART_RX_vect |
2 | __interrupt void rx_buffer_full(void) |
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.
sollte dass
1 | #pragma vector=USART_RX_vect
|
2 | __interrupt void rx_buffer_full(void) |
nicht eher
1 | ISR (USART_EXC_vect) |
heißen? Hruß, Markus
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.