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??