HI-Tech RX Interrupt Service Routine

Gast #1322516
Lesenswert?
• ▲
▼
Hallo zusammen,

Ich habe bis jetzt den CCS Compiler verwendet und vor kurzem habe ich 
mir die Testversion (60Tage) von dem Hi-Tech Compiler runtergeladen
Ich habe eine Frage zum Hi-Tech Compiler: Also ich verwende den 
PIC16F688. Ich versuche über die rs232 zu kommunizieren, gibt es einen 
Compiler Befehl, wo ich die ISR(Interrupt service Rutine) für den 
Empfang auslösen kann. ich habe im Handbuch von dem Compiler geschaut 
und die Funktion heisst:
void interrupt (void) {} woher weiss der Compiler welchen Interrupt er 
auslöst???es gibt INT_RX, INT_TX, etc....Er braucht doch eine 
Vectorliste, wo die ganze Adressen sind.

Also bei mir sieht die Empfangfunktion so aus:

void getchar (void)

{

    RCIE = 1,
    PIEI = 1;
    GIE =1;
    ei ();

    while (!RCIF)
            continue;

return (RCREG);
}

so jetzt bleibt er in diese While Schliefe klemmen, weil die Interrupt 
service routine für RX (INT_RTDA) so heisst es beim CCS Compiler nicht 
freigegebn wurde...wie heisst die ISR für RX in Hi-TECH compiler?

Danke sehr im Voraus,

Gruß

Sadier
#1322564
Lesenswert?
• ▲
▼
Sadier schrieb:
> void interrupt (void) {} woher weiss der Compiler welchen Interrupt er
> auslöst???es gibt INT_RX, INT_TX, etc....Er braucht doch eine
> Vectorliste, wo die ganze Adressen sind.

Nein, das ist eine Besonderheit der PICs.
Es sind mir keine anderen MCs bekannt, die keine quellenabhängigen 
Interruptvektoren haben.
Werden beim PIC mehrere Interrupts freigegeben, muß man im Handler 
erstmal feststellen, welcher zugeschlagen hat.
Das bedingt auch, daß alle Interruptflags händisch gelöscht werden 
müssen.
Das übliche Löschen automatisch beim Eintritt ist nicht möglich.


Peter

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