Der Latch ist der Ausgang Latch, auf die Werte geschrieben werden. Der Port ist die Spannung am eigentlichen Pin.
Es gibt einige Situationen, in denen sie unterschiedlich sein können. Der, den ich am häufigsten angetroffen habe, ist, wenn du einen Pin (versehentlich) kurzgeschlossen hast. Wenn Sie den Latch hoch setzen, wird der Latch hoch angezeigt, aber der Port wird niedrig gelesen, da die Spannung am Pin immer noch ungefähr Masse ist.
Eine andere Situation, die zu dem führt, was Sie beschrieben haben, ist, wenn der Port-Pin nicht korrekt konfiguriert wurde. Ich (und alle, mit denen ich zusammenarbeite) habe viele Stunden damit verbracht, herauszufinden, warum unser PIC nicht den Erwartungen entspricht, um schließlich herauszufinden, dass wir die analogen Module zum Beispiel abgeschalten haben. Stellen Sie sicher, dass Sie die Sektion I/O Ports -> PORT?, TRIS? Und LAT? registriert im Datenblatt. Sie können weitere Informationen in der Microchip wiki page erhalten, die erklärt, dass Sie den falschen Wert sofort lesen, nachdem Sie einen Ausgang auf einen Pin geschrieben haben, der an eine kapazitive Last angeschlossen ist.
Das Wiki-Seite auch erklärt:
Ein Lesen des Port Latchregisters gibt die Einstellungen der Ausgangstreiber, während ein Lesen des Port-Register gibt die Logikpegel an den Stiften gesehen.
Auch hier ist ein Ausschnitt aus der I/O-Ports Abschnitt auf der 18F14K50 (was sollte der gleiche wie der Rest der 18F-Serie sein):
Jeder Port verfügt über drei Register für seine Operation. Diese Register sind:
- TRIS-Register (Datenrichtungsregister)
- PORT-Register (liest die Werte auf die Stifte der Vorrichtung)
- LAT-Register (Ausgangslatch)
In den meisten Fällen schreiben Sie in den Latch und lesen vom Port.
Also, wenn die PIN im INPUT-Modus ist, was soll ich verwenden? VERRIEGELN oder PORT? Und wenn die PIN im OUPUT-Modus ist, was soll ich verwenden? VERRIEGELN oder PORT? – acemtp
@acemtp: Antwort aktualisiert. –