|
|
|
|
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
Sbit P2_5 = P2^5; en assembleur
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) |