parseInt et Bit

Bonjour,
j'aimerais que l'instruction que je passe dans le buffer serie, par exemple 1 3 26, les entiers soient convertis en nombre binaire de type 0b00000000 sur 8 octets et stockes dans le tableau octetValeur[OCTET_DATA]? j' ai essaye de passer cela avec un Serial.print(,'0b00000000') mais cela ne fonctionne pas.
Un grand merci


hw_timer_t * timer = NULL; // Declare a timer for interruption

#define OCTET_DATA 3 // nombre d octets dans une trame
int octetIndex=0; // octet actuel qui est recu
byte octetValeur[OCTET_DATA]; // Tableau stockant les octets





void IRAM_ATTR onTimer() { // Interrupt function



}


void LireOctet(byte Vecteur) {
for (int ii = 0; ii < 8; ii++) {
        if (Vecteur & (B10000000 >> ii)) {
             Serial.print(1); //BitUn();
                                         }
        else {
            Serial.print(0); //BitZero(); //Serial.print(0);
             }
                   }
                   }




void setup() {
Serial.begin(115200);
timer = timerBegin (0, 80, true); // Initialization
timerAttachInterrupt (timer, &onTimer, true); // Call the interrupt function
timerAlarmWrite (timer,1000000, true); // Timerbegin parameter is 80MHz, here is 1000000 Meaning 1 second
timerAlarmEnable (timer); // Timer enables

// TimerDetAnterRupt (timer); // Close the timer
}


void loop() {


          if (Serial.available()) {
              for (octetIndex=0;octetIndex<3;octetIndex++) 
                        {
                        octetValeur[octetIndex]=Serial.parseInt(); // recupere la valeur numerique
                        }

              Serial.print(octetIndex);
              Serial.println(" champ recu :");
              for (int i=0;i<octetIndex;i++)
                 {
                  Serial.println(octetValeur[i],'0b0000000');
                 }    
                 octetIndex=0;   
              }
          }

    

pourquoi gâcher de la mémoire ? conservez les données dans l'octet (c'est déjà du binaire) et accédez aux bits en utilisant bitRead()

pour imprimer en binaire, c'est Serial.print(valeur, BIN);

1 Like