LOCODUINO

Aide
Forum de discussion
Dépôt GIT Locoduino
Flux RSS

jeudi 28 mars 2024

Visiteurs connectés : 41

Calculer avec l’Arduino (2)

Les opérations sur les bits

. Par : Jean-Luc

Dans ce qui suit, les bits sont numérotés comme montré dans la figure ci-dessous. Chaque case peut contenir un bit, au dessus on a le numéro du bit. Le bit 0 est le bit le plus à droite, le bit 7 est le bit le plus à gauche. Ceci est donc un octet. Opérateurs sur les bits Plusieurs opérateurs permettent de manipuler les bits. Ces (...)

Retourner à l'article

Vous répondez à :

calculer en binaire 9 février 2021 10:26, par Nicolas

Bonjour, oui je me suis trompé, je voulais bien dire tUBYTE= -23 et non pas 23.
Reprenons cette boucle if() ligne par ligne : (on garde tUBYTE= -23 soit 0b10010111 et tLRBYTE= 0)

if(tUBYTE & 0b10000000)
  {
   tUBYTE  ^= 0b11111111;
   tUBYTE  += 0x1;
   fTemperatureCelsius = tUBYTE + ((tLRBYTE >> 6) * 0.25);
   fTemperatureCelsius = fTemperatureCelsius * -1;
  }

"if(tUBYTE & 0b10000000)" : je lis Si( 0b10010111 et 0b10000000), je ne comprends pas ce qu’est la condition vraie ?
Si on calcule 0b10010111 & 0b1000000, on obtient 0b10000000. Doit-on lire Si(0b10000000) ? Ca reviendrait à dire "Si(resultat de tUBYTE & 0b10000000 vaut 0b10000000), la condition est vraie" ? On aurait pu donc l’ecrire : if(tUBYTE & 0b10000000 == 0b10000000) ?

"tUBYTE ^= 0b11111111 ;" : je lis tUBYTE = tUBYTE ^ 0b11111111 soit tUBYTE = 0b10010111 ^ 0b11111111 = 0b01101000.

"tUBYTE += 0x1 ;" : je lis tUBYTE (calculé juste au-dessus) = tUBYTE + 0b00000001 soit tUBYTE = 0b01101000 + 0b00000001 = 0b01101001.

"fTemperatureCelsius = tUBYTE + ((tLRBYTE >> 6) * 0.25) ;" : je lis fTemperatureCelsius = 0b01101001 + 0 = 0b01101001 soit 105.

"fTemperatureCelsius = fTemperatureCelsius * -1 ;" : je lis fTemperatureCelsius = 105* -1 = -105. Donc -105°C.

Il y a donc quelque chose que je ne lis pas correctement, mais quoi ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

22 Messages

Rubrique Programmation

Le monde des objets (1)

Le monde des objets (2)

Le monde des objets (3)

Le monde des objets (4)

Les pointeurs (1)

Les pointeurs (2)

Les Timers (I)

Les Timers (II)

Les Timers (III)

Les Timers (IV)

Les Timers (V)

Bien utiliser l’IDE d’Arduino (1)

Bien utiliser l’IDE d’Arduino (2)

Piloter son Arduino avec son navigateur web et Node.js (1)

Piloter son Arduino avec son navigateur web et Node.js (2)

Piloter son Arduino avec son navigateur web et Node.js (3)

Piloter son Arduino avec son navigateur web et Node.js (4)

Comment gérer le temps dans un programme ?

La programmation, qu’est ce que c’est

Types, constantes et variables

Installation de l’IDE Arduino

Répéter des instructions : les boucles

Les interruptions (1)

Instructions conditionnelles : le if ... else

Instructions conditionnelles : le switch ... case

Comment concevoir rationnellement votre système

Comment gérer l’aléatoire ?

Calculer avec l’Arduino (1)

Calculer avec l’Arduino (2)

Les structures

Systèmes de numération

Les fonctions

Trois façons de déclarer des constantes

Transcription d’un programme simple en programmation objet

Ces tableaux qui peuvent nous simplifier le développement Arduino

Les chaînes de caractères

Trucs, astuces et choses à ne pas faire !

Processing pour nos trains

Arduino : toute première fois !

Démarrer en Processing (1)

TCOs en Processing (1)

TCOs en Processing (2)

L’assembleur (1)

L’assembleur (2)

L’assembleur (3)

L’assembleur (4)

L’assembleur (5)

L’assembleur (6)

L’assembleur (7)

L’assembleur (8)

L’assembleur (9)

Les derniers articles

L’assembleur (9)


Christian

L’assembleur (8)


Christian

L’assembleur (7)


Christian

L’assembleur (6)


Christian

L’assembleur (5)


Christian

L’assembleur (4)


Christian

L’assembleur (3)


Christian

L’assembleur (2)


Christian

L’assembleur (1)


Christian

TCOs en Processing (2)


Pierre59

Les articles les plus lus

Les Timers (I)

Les interruptions (1)

Instructions conditionnelles : le if ... else

Calculer avec l’Arduino (1)

Comment gérer le temps dans un programme ?

Ces tableaux qui peuvent nous simplifier le développement Arduino

Répéter des instructions : les boucles

Les structures

Les Timers (III)

Bien utiliser l’IDE d’Arduino (1)