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