Interrupt in C?

Gast #28504
Lesenswert?

Hallo
Ich habe folgenden Code aus einem Buch abgeschrieben, trotzdem kriege 
ich immer eine Fehlermeldung...
Sind irgendwelche Compilereinstellungen falsch? Oder stimmt was am Code 
nicht?
Danke


interrupt [UART_RX_vect] void UartRxIntHandler( void )
{

    unsigned char data;

    data = UDR;  // Lesen der Empfangsdaten
    RxBuf[RxProducer] = data;
    RxProducer++;
    RxProducer &= BUFFER_MASK;

    if(RxProducer == RxConsumer)
    {
     //Fehler!
    }

}

..\main.cpp (115) : Error[Pe077]: this declaration has no storage class 
or type specifier
..\main.cpp (115) : Error[Pe065]: expected a ";"

Ich benütze den IAR Embedded Workbench.
Gast #28506
Lesenswert?

Hallo Oli

Ich kenne mich in C eigentlich überhaupt nicht aus,
aber den zweiten Fehler kannst du sicher eliminieren, indem du
nach "if(RxProducer == RxConsumer)" noch ein ";" einfügst,
wie bei (fast) allen anderen Zeilen(ausser Kommentare)

Der erste Fehler hat wahrscheinlich seine Ursprünge in der
selben Zeile, denn was ist RxConsumer?

MFG

NIK
Gast #28509
Lesenswert?

äh blöd, du hast ja geschrieben welches Zeile 115 ist.
Das ";" kommt desshalb auch am Ende dieser Zeile hin.(Denke ich)

Der andere Fehler liegt ja in der selben Zeile.
Dem Compiler ist anscheinend etwas nicht genau beschrieben.
Wie gesagt ich eigentlich überhaupt keine C Kentnisse,
desshalb kann ich auch nur vermuten.


MFG
Nik
Gast #28514
Lesenswert?

@John: Falls es dich beruhigt: NEIN, ich habe den IAR Embedded Workbench 
rechtmässig erworben. Ich bin sogar Besitzer einer runden Scheibe, wo 
dieses Programm darauf gespeichert ist. Cool, oder?    ;-)

Thema:
Ich hab jetzt herausgefunden, wie ich es machen muss:

#pragma vector=UART_RX_vect
__interrupt void UartRxIntHandler( void )


Danke für euer Hilfe
Oli
Gast #28516
Lesenswert?

>Aber das war doch so eine klassische Handbuchfrage.

Da hast Du schon recht. Hab das "#pragma vector"-Zeugs auch schon vor 
der Frage gesehen, ich dachte mir einfach immer 'ach, das muss doch so 
gehen, wenn es schon im Buch steht...'.
Naja...
Danke jedenfalls nochmals für die Hilfe, bin halt zu dumm um 
"Handbuchfragen" selber zu lösen.
mfg
Oli

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