mikrocontroller.net

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


Autor: Sadier (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.