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.