Modifications

Sauter à la navigation Sauter à la recherche
Ligne 26 : Ligne 26 :  
* Une autres fois pour lire chacun des bytes/octets (tronçons de 8 bits) ''composant ce "type double"'' qui stock la valeur numérique.
 
* Une autres fois pour lire chacun des bytes/octets (tronçons de 8 bits) ''composant ce "type double"'' qui stock la valeur numérique.
   −
Grâce à cette structure, il est possible de saucissonner une espace mémoire pour l'envoyer sur le bus I2C.   
+
Grâce à cette structure, il est possible de saucissonner un espace mémoire pour l'envoyer sur le bus I2C.   
    
Les 4 octets/bytes sont accessibles comme un tableau... ou un buffer. Il est donc possible d'utiliser directement la méthode Wire.write() pour envoyer le ''buffer'' de 4 octets de long sur le bus I2C.
 
Les 4 octets/bytes sont accessibles comme un tableau... ou un buffer. Il est donc possible d'utiliser directement la méthode Wire.write() pour envoyer le ''buffer'' de 4 octets de long sur le bus I2C.
 
}}
 
}}
+
 
 
=== Envoi d'une valeur décimale (float) ===
 
=== Envoi d'une valeur décimale (float) ===
   −
Si votre valeur décimale est contenue dans un type '''float''', il faudra faire un transtypage du pointeur (casting).
+
Si votre valeur décimale est contenue dans un type '''float''', il faudra faire un transtypage du pointeur (casting) avant l'envoi sur le bus I2C.
    
Le code d'envoi I2C pour un type '''double''' ressemble à ceci
 
Le code d'envoi I2C pour un type '''double''' ressemble à ceci
Ligne 46 : Ligne 46 :  
valeurFloat = 312.777;
 
valeurFloat = 312.777;
 
Wire_SendDouble( (double*)&valeurFloat );</nowiki>
 
Wire_SendDouble( (double*)&valeurFloat );</nowiki>
 +
 +
{{ambox|text=Sur un ATMEGA, les types double et float sont rigoureusement identiques (4 bytes).<br />
 +
Cette opération de transtypage ne sera pas valide sur un DUE ou un double fait 4 bytes et un float 8 bytes!}}
    
=== Code source ===
 
=== Code source ===
29 918

modifications

Menu de navigation