Bonjour ;
je suis entrain de récupérer par une fonction le niveau de mon PORTB0 de sortie de pic 18f
alors j'utilise la fonction suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
if((PORTBbits.RB0&1)==0) 	
               return 1;
else
               return 0;    
}
j'utilise le niveau inverse de port B car il est à l'état haut par défaut

pour recuperer les niveaux des 8 bits sur un char j'utilise le décalage à gauche comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
char RDchar(void)
{	unsigned int i; 
	char c=0;
	for(i=0; i<8; i++) 
		{
		c |= ((RDbit())<<1);
		}
return c;
}
mais le problème que sa marche pas cette méthode car je pense que au moment de la récupération des zéro (niveau bas) il y'a un probleme !!!
je récupère toujours la même valeur c=0x40;
merci