Il fermo è output latch su cui vengono scritti i valori. La porta è la tensione al pin attuale.
Ci sono alcune situazioni in cui possono essere diversi. Quello che ho incontrato più frequentemente è se hai uno spillo (accidentalmente) in cortocircuito verso terra. Se si imposta il latch alto, il latch verrà letto alto, ma la porta leggerà in basso perché la tensione sul pin è ancora approssimativamente a terra.
Un'altra situazione che porta a ciò che hai descritto è quando il pin della porta non è stato configurato correttamente. Io (e tutti quelli con cui lavoro) abbiamo passato molte ore a cercare di capire perché il nostro PIC non sta lavorando alle aspettative, per scoprire infine che abbiamo ignorato lo spegnimento dei moduli analogici, per esempio. Assicurati di andare oltre la sezione Porte I/O -> PORT ?, TRIS ?, e LAT? registri nel foglio dati. È possibile ottenere maggiori informazioni nel Microchip wiki page che spiega la lettura del valore errato immediatamente dopo aver scritto un'uscita su un pin collegato a un carico capacitivo.
Quella pagina wiki spiega anche:
Una lettura del porto registro latch riporta le impostazioni dei driver di uscita, mentre una lettura del registro di porto restituisce i livelli logici visti sui perni.
Inoltre, ecco un frammento dalla sezione porte I/O sul 18F14K50 (che dovrebbe essere lo stesso del resto della serie 18F):
Ciascuna porta ha tre registri per la sua Operazione . Questi registri sono:
- registro TRIS (direzione registro dati)
- registro PORT (legge i livelli sui perni del dispositivo)
- LAT registro (uscita latch)
Quindi nella maggior parte delle situazioni, scriverete al latch e leggerete dal porto.
fonte
2010-04-12 16:07:40
Quindi, se il PIN è in modalità INPUT, cosa dovrei usare? LATCH o PORT? E se il PIN è in modalità OUPUT, cosa dovrei usare? LATCH o PORT? – acemtp
@acemtp: risposta aggiornata. –