Verwenden eines externen Interrupts von einem beliebigen Pin PIC16F873A

Ich versuche, einen Interrupt zu verwenden, der bei einer steigenden Flanke eines Signals auftritt, das von meinem LSM303DLHC-Beschleunigungsmesser kommt. Der Beschleunigungsmesser hat ein Data Ready (DRDY) Signal, das jedes Mal ausgelöst wird, wenn neue Daten zu den Registern hinzugefügt werden, aus denen ich gelesen habe, und ich möchte dieses Signal verwenden, um einen Interrupt auszulösen, damit ich nur vom Beschleunigungsmesser lesen kann, wenn Daten bereit sind. Das Problem ist, dass ich keine Port-B-Pins zur Verfügung habe, weil ich sie für die Verbindung mit einem LCD (nicht seriell) verwende. Im Moment frage ich nur ein Statusregisterbit im Beschleunigungsmesser ab, um zu sehen, wann Daten verfügbar sind, aber das ist offensichtlich nicht sehr effizient, da ich auch GPS-Daten einlesen und gleichzeitig Servos steuern möchte. Wenn es nicht ohnehin möglich ist, einen Interrupt von Port A- oder Port C-Pins zu erhalten,

Antworten (1)

Mehrere Probleme:

  1. Dies ist der Fall, warum Sie sorgfältig auswählen müssen, welche Pins des Mikros auf welche Weise verwendet werden. "Ich benutze sie als Schnittstelle zu einem LCD" ist keine Entschuldigung. Verwenden Sie einige andere Pins für das LCD, die keine spezielle Hardwarefunktion haben, die Sie benötigen. Weisen Sie zuerst Pins zu, die spezielle Hardwarefunktionen verwenden, und weisen Sie dann allgemeine E/A den verbleibenden Pins zu.

  2. Der PIC 16F873A ist ziemlich alt. Es gibt wahrscheinlich neuere PICs mit dem gleichen Footprint, die viel mehr E / A-Fähigkeiten haben, möglicherweise einschließlich mehr Interrupts an Wechselstiften.

  3. Es gibt andere Möglichkeiten, einen Interrupt zu verursachen, wie z. B. den INT-Pin speziell für diesen Zweck, die CCP-Eingänge und sogar Timer-Clock-Eingänge, wenn Sie schlau sind. Einige davon verbrauchen möglicherweise andere Hardware, nur um den Interrupt zu erhalten, aber das schadet nicht, wenn Sie diese Hardware nicht sowieso verwenden würden.

  4. Siehe Punkt eins. Weisen Sie die Pins richtig zu. Das sollte eigentlich klar sein.