C'est ce que j'ai trouvé dans la fiche technique PIC16F1947:
La lecture du registre PORTB lit l'état des broches, tandis que l'écriture dans celui-ci écrit dans le verrou PORT. Toutes les opérations d'écriture sont des opérations de lecture-modification-écriture. Par conséquent, une écriture sur un port implique que les broches du port sont lues, cette valeur est modifiée puis écrite dans le verrou de données PORT (LATB).
Je suis développeur de firmware et j'ai une formation en informatique. J'ai encore du mal à comprendre l'électronique et la logique au niveau matériel. Je n'ai que les connaissances de base.
Donc, je veux comprendre ce qui se passe lorsque les données sont écrites pour se verrouiller au niveau matériel.
Je vous remercie.
la source
Pour éviter les problèmes de lecture-modification-écriture, vous devez écrire sur le port dans son ensemble, plutôt que de définir ou de réinitialiser des bits individuels dans le port. Un problème RMW peut entraîner un bit non défini ou une autre sortie élevée, en particulier si les broches de sortie recherchent ou absorbent beaucoup de courant.
Un "registre fantôme" est généralement utilisé. Définissez ou réinitialisez les bits dans cela, et envoyez-les au port, pour éviter les problèmes RMW.
Le problème est évité avec les PIC 18F en utilisant un verrou séparé, des bits individuels qui peuvent être définis et réinitialisés en toute impunité.
la source