#!/usr/local/bin/php les_entrees_sorties_logiques [GeWiki]
 

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) {....
 
les_entrees_sorties_logiques.txt · Dernière modification: 2015/04/27 16:54 (édition externe)
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki