Comment declarer un bit d'un registre en C

Résolu/Fermé
sissi2003 Messages postés 9 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 30 avril 2014 - 4 avril 2005 à 16:21
sissi2003 Messages postés 9 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 30 avril 2014 - 6 avril 2005 à 11:23
bonjour,

J'ai longtemps programme en basic et j'ai du mal a me remettre au C.
Quelqu'un peu me dire comment on declare le bit 5 (par exemple) du registre P2. Le registre P2 a ete identifie par son adresse.
Je croyais qu'il fallait ecrire :
sbit P2_5 = P2^5; en assembleur pour pouvoir l'utiliser sous le nom P2_5 mais ca ne marche pas.

merci
A voir également:

2 réponses

sbit P2_5 = P2^5; en assembleur

C'est quoi ton assembleur ?
En C.
int getBit (uint reg, int bitNumber) {
  int b = reg >> bitNumber; // en asm, >> est SHR
  // on décale de 5 bits vers la droite
  b &= 0x00000001; // 1 en héxa sur 32 bits
  // on masque tout les bits sauf le N°0 (ancien N°bitNumber).

  return b;
  // on retourne un entier qui vaut soit zéro, soit un, en fonction de la
  // valeur du bit "bit number" de "reg"
}


Tiens, je crois comprendre ce que tu voulais faire... "^" c'est bien l'opérateur "OU EXCLUSIF" du C ???

Alors, tu voulais surement dire :
P2_5 = P2 & (1<<5);
//vaut zéro si le bit 5 est à zéro, 2^5, sinon...)

(puisque TA ligne fait le XOR (c'est pas la bonne fonction) de P2 avec (en binaire sur 1 octet) 00001001)
0
sissi2003 Messages postés 9 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 30 avril 2014
6 avril 2005 à 11:23
mon assembler est un A51 .
En faire ta premiere reponse correspondait a ma question. Je te remercie de ton aide.
0