Topic permanente di programmazione newbie

menniti:
mi servono 6 valori per le possibili combinazioni di EFuse e Tipo di Programmazione;

Per gestire in modo semplice il quarto byte che fa da bit flag ti consiglio l'uso di una unione contenente una variabile unsigned char e una struttura bit fields di otto elementi.
In pratica carichi sulla variabile unsigned char il quarto byte dopo di che puoi accedere direttamente ai singoli flag tramite nomi mnemonici, ti allego un semplice sketch di esempio dove viene creata la struttura che ti dico, i vari nomi li puoi cambiare come ti pare, e dopo aver caricato sulla variabile principale un valore binario vengono stampati sul serial monitor i singoli bit che lo costituiscono:

struct Bit_Fields {
        unsigned char dato1:1;
        unsigned char dato2:1;
        unsigned char dato3:1;
        unsigned char dato4:1;
        unsigned char dato5:1;
        unsigned char dato6:1;
        unsigned char dato7:1;
        unsigned char dato8:1;
                  };

union bit_fields {
       unsigned char AllBits;
       struct Bit_Fields BtF;
                 } AuxData; 


void setup() 
{ 

  Serial.begin(9600); 

  AuxData.AllBits = 0b11001100;

  Serial.print("Bit 1 = ");  
  Serial.println(AuxData.BtF.dato1, DEC); 

  Serial.print("Bit 2 = ");  
  Serial.println(AuxData.BtF.dato2, DEC); 

  Serial.print("Bit 3 = ");  
  Serial.println(AuxData.BtF.dato3, DEC); 

  Serial.print("Bit 4 = ");  
  Serial.println(AuxData.BtF.dato4, DEC); 

  Serial.print("Bit 5 = ");  
  Serial.println(AuxData.BtF.dato5, DEC); 

  Serial.print("Bit 6 = ");  
  Serial.println(AuxData.BtF.dato6, DEC); 

  Serial.print("Bit 7 = ");  
  Serial.println(AuxData.BtF.dato7, DEC); 

  Serial.print("Bit 8 = ");  
  Serial.println(AuxData.BtF.dato8, DEC); 

  Serial.print("AllBits ");  
  Serial.println(AuxData.AllBits, HEX); 

} 


void loop() 
{ 

}