Forum: Mikrocontroller und Digitale Elektronik HI-Tech RX Interrupt Service Routine


von Sadier (Gast)


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

von Peter D. (peda)


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

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
Noch kein Account? Hier anmelden.