Frage

Ich habe gerade meine Klasse im College Mikroprozessoren fertig bis vor wenigen Wochen, da programmiert wir Montage nur in. Wir haben gelernt, eine angemessene Menge (IMHO) über Interrupts.

Hier ist meine Frage: Ich programmiere in C für die 16F684 die HiTech-Compiler, im Datenblatt Abschnitt wird die Interrupts diskutieren ( PIC 16F684 Datenblatt Abschnitt 12.4) heißt es, dass das Programm zum Interruptvektor 0x0004 gehen. Mit der Anordnung in meinen Mikroprozessor Klasse würden wir eine .org Aussage einfach Setup an diese Adresse zeigt und schreiben die benötigte Baugruppe unten so, wenn die Unterbrechung auftritt es dort springen würde und ausführen. Ich kann das in der Montage herausfinden, aber wenn ich in C programmieren, ich glaube nicht, dass ich Kontrolle darüber, wo Programmstück im Speicher platziert werden, was ein Problem darstellt. Ich kann nicht herausfinden, wie Befehle in C an der Interrupt zu setzen.

Bitte lassen Sie mich wissen, wenn ich klarstellen müssen!

War es hilfreich?

Lösung

Diese FAQ von Microchip hat einige Informationen über Interrupts unter HiTech C unter Verwendung von .

Andere Tipps

HiTech C erweitert die C-Sprache mit dem interrupt Funktionstyp:

void interrupt my_interrupt_handler (void) {
    handle_interrupts_here();
}

Sie sollten wirklich das Handbuch für den Compiler bekommen. Ich glaube, das Handbuch für die Pic-lite zum Download frei ist, zumindest war es, als ich im Jahr 2001 einige Zeit meine Kopie heruntergeladen werden.

Sie werden in die HiTech Dokumentation graben müssen, aber oft Compiler haben spezielle Schlüsselwörter Interrupt-Funktionen zu definieren. Der Compiler oder das Laufzeitsystem muss mit einer Funktion durch einen Interrupt aufgerufen beschäftigen speziell: Neben der Einrichtung des Vektors, der Compiler (oder Runtime-System) nach oben hat alle Register zu bewahren. Es ist vielleicht nicht, dass für eine normale, nicht-Interrupt-Funktion zu tun hat.

Das Handbuch wird dein Freund sein.

Die CCS-Compiler für PICs # int_ * Compiler-Direktiven oder verwendet 'Attribute' auf Interrupt-Handling-Funktionen für die verschiedenen Interrupt Quellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top