#!/usr/local/bin/php Toutes les broches peuvent être configurées indépendamment en entrées ou sorties logiques. \\ **Au Reset les broches sont toujours configurées en entrées.**\\ Attention les ports A et B sont partagés avec le module adc.Toutes les combinaisons Analogique/Digitale ne sont pas possibles. \\ Le port A est configuré en analogique au Reset. **Sauf RA4 qui est toujours digitale** RA4 : drain ouvert en sortie / trigger de smith en entrée.\\ La configuration au reset des broches RB4:RB0 du port B dépend du bit de config PBADEN : OFF : RB4:RB0 digitales au reset , ON : analogique\\ On peut activer des résistances de pullup internes sur le PORTB.\\ **RB6 et RB7 sont dédiées à l'ICD** Ne pas utiliser si l'icd est utilisé.\\ PORTA , PORTB et PORTE : Partagé avec le module convertisseur analogique/numérique PORTA : Analogique au reset. PORTB : Analogique ou digital au reset selon l'état du bit de configuration PBADEN\\ Les configurations de chaque broches ne sont pas indépendantes. Voir le registre ADCON1 (DS39631A page 224)\\ PORTC et PORTD : partagés avec d'autres fonctions mais toujours digital.\\ Trois registres importants :\\ **PORTx** : bits représentants l'état réel de lignes d'E/S\\ **LATx** : bits représentants l'état forcé des sorties\\ **TRISx** : bits de configuration 1 : entrée (valeur au reset) 0 : sortie\\ Normalement pour une sortie LATx = PORTx sauf dans quelques cas particulier : court-circuit entre broches,drain ouvert,surconsommation...\\ ---- === Entrée === **Configuration** (inutile au reset) :\\ TRISBbits.TRISB0 = 1 ; **Lecture** :\\ if(PORTBbits.RB0 == 0 ) { ...... ; // action si 1 } else { ..... ; // action si 0 **Ecriture : sans effet** (PORTBbits.RB0 = 1 ;)\\ ---- ===Sorties=== **Configuration** :\\ PORTBbits.RB3 = 0 ; TRISBbits.TRISB3 = 0 ; // il vaut mieux fixer l'état avant que la broche ne soit une sortie **Ecriture** :\\ PORTBbits.RB3 = 0 ; ou LATBbits.LATB3 = 0 ; **Relecture** :\\ on relit l'état réel (detection de cc,etc..) if ( PORTBbits.RB3==1) {.... ou on relit l'état forcé (souhaité) if (LATBbits.LATB3==1) {....