Rechercher : dans
Par :

Comment declarer un bit d'un registre en C

Dernière réponse le 6 avr 2005 à 11:23:39 sissi2003, le 4 avr 2005 à 16:21:55 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « comment declarer un bit d'un registre en C » dans :
Base de Registre : Sauvegarde et Restauration VoirSauvegarder et Restaurer le Registre de Windows XP Voici 2 méthodes simple pour Sauvegarder et Restaurer le Registre de Windows XP. Exporter - Importer Sauvegarde et Restauration à l'aide de la console de récupération de Windows...
Les variables en C++ VoirLes variables en C++ 1. Les différents types de variables 1.1 bool 1.2 char 1.3 unsigned short int 1.4 short int 1.5 unsigned long int 1.6 long int 1.7 int (16 bits) 1.8 int (32 bits) 1.9 unsigned int (16 bits) 1.10 unsigned int (32...
Déclarer son site Internet auprès de la CNIL VoirDéclarer son site Internet auprès de la CNIL Si l’objectif premier d’un site Internet est de faire connaître son entreprise, un site permet aussi d’être contacté, par des clients ou des partenaires potentiels par un système de mail ou de...
Langage C - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...

1

SKZ81, le 5 avr 2005 à 01:26:56

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)

Répondre à SKZ81

2

 sissi2003, le 6 avr 2005 à 11:23:39

Mon assembler est un A51 .
En faire ta premiere reponse correspondait a ma question. Je te remercie de ton aide.

Répondre à sissi2003