Skip to content

Instantly share code, notes, and snippets.

@ultramcu
Created May 26, 2014 17:16
Show Gist options
  • Save ultramcu/d265115b493cedb8f0d3 to your computer and use it in GitHub Desktop.
Save ultramcu/d265115b493cedb8f0d3 to your computer and use it in GitHub Desktop.
#include "stdint.h"
typedef union {
struct{
uint8_t bit_0: 1;
uint8_t bit_1: 1;
uint8_t bit_2: 1;
uint8_t bit_3: 1;
uint8_t bit_4: 1;
uint8_t bit_5: 1;
uint8_t bit_6: 1;
uint8_t bit_7: 1;
};
uint8_t byte_0;
}st_data;
void setup()
{
Serial.begin(9600);
st_data my_data;
my_data.byte_0 = 0xA5; //1010 0101
Serial.println("");Serial.println("Using union to access bit value");
Serial.print("byte = ");Serial.println(my_data.byte_0,HEX);
Serial.println("");
Serial.print("Bit 7 = ");Serial.println(my_data.bit_7);
Serial.print("Bit 6 = ");Serial.println(my_data.bit_6);
Serial.print("Bit 5 = ");Serial.println(my_data.bit_5);
Serial.print("Bit 4 = ");Serial.println(my_data.bit_4);
Serial.print("Bit 3 = ");Serial.println(my_data.bit_3);
Serial.print("Bit 2 = ");Serial.println(my_data.bit_2);
Serial.print("Bit 1 = ");Serial.println(my_data.bit_1);
Serial.print("Bit 0 = ");Serial.println(my_data.bit_0);
}
void loop()
{
}
#include "stdint.h"
typedef union {
struct{
uint8_t bit_0: 1;
uint8_t bit_1: 1;
uint8_t bit_2: 1;
uint8_t bit_3: 1;
uint8_t bit_4: 1;
uint8_t bit_5: 1;
uint8_t bit_6: 1;
uint8_t bit_7: 1;
};
uint8_t byte_0;
}st_data;
void main()
{
st_data mydata;
mydata.byte_0 = 0xA5;
printf("byte_0 = 0x%02X\r\n",mydata.byte_0);
printf("bit_7 = %d\r\n",mydata.bit_7);
printf("bit_6 = %d\r\n",mydata.bit_6);
printf("bit_5 = %d\r\n",mydata.bit_5);
printf("bit_4 = %d\r\n",mydata.bit_4);
printf("bit_3 = %d\r\n",mydata.bit_3);
printf("bit_2 = %d\r\n",mydata.bit_2);
printf("bit_1 = %d\r\n",mydata.bit_1);
printf("bit_0 = %d\r\n",mydata.bit_0);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment