This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Construct a byte from bits

Hello everybody,

I am very new to C language. In my project I get data serially from a port pin. I want to save the first 8 bits to one variable, another to second & so on. In all I want to save 32 bits in 4 bytes. Can you suggest C code.

I know it in assembly by using RRC or RLC, but how to achieve it in C?

Thanks

Parents
  • this structure is a 4 bytes where each bit can be accessed by name.

    
    
    typedef struct {
                    unsigned int ACK_ARM:1;      // bit 0.
                    unsigned int ACK_DSP:1;          // bit one.
    
                    unsigned int RESEND:1;
                    unsigned int INVALID_COMMAND:1;
    
                    unsigned int STRING:1;
                    unsigned int DIAGNOSTIC:1;
    
                    unsigned int ACK_CAL:1;
                    unsigned int READY:1;
    
                    unsigned int TEST_1:1;
                    unsigned int TEST_2:1;
    
                    unsigned int TEST_3:1;
                    unsigned int TEST_4:1;
    
                    unsigned int DATA_AVAILABLE:1;   // bit 12.
    
                    unsigned int SD_CARD_PRESENT:1;
                    unsigned int RESERVED_14:1;
                    unsigned int RESERVED_15:1;
    
                    unsigned int RESERVED_16:1;
                    unsigned int RESERVED_17:1;
                    unsigned int RESERVED_18:1;
                    unsigned int RESERVED_19:1;
    
                    unsigned int RESERVED_20:1;
                    unsigned int RESERVED_21:1;
                    unsigned int RESERVED_22:1;
                    unsigned int RESERVED_23:1;
    
                    unsigned int RESERVED_24:1;
                    unsigned int RESERVED_25:1;
                    unsigned int RESERVED_26:1;
                    unsigned int RESERVED_27:1;
    
                    unsigned int RESERVED_28:1;
                    unsigned int RESERVED_29:1;
                    unsigned int RESERVED_30:1;
                    unsigned int RESERVED_31:1;
    
        } status_bits_type;
    
    

Reply
  • this structure is a 4 bytes where each bit can be accessed by name.

    
    
    typedef struct {
                    unsigned int ACK_ARM:1;      // bit 0.
                    unsigned int ACK_DSP:1;          // bit one.
    
                    unsigned int RESEND:1;
                    unsigned int INVALID_COMMAND:1;
    
                    unsigned int STRING:1;
                    unsigned int DIAGNOSTIC:1;
    
                    unsigned int ACK_CAL:1;
                    unsigned int READY:1;
    
                    unsigned int TEST_1:1;
                    unsigned int TEST_2:1;
    
                    unsigned int TEST_3:1;
                    unsigned int TEST_4:1;
    
                    unsigned int DATA_AVAILABLE:1;   // bit 12.
    
                    unsigned int SD_CARD_PRESENT:1;
                    unsigned int RESERVED_14:1;
                    unsigned int RESERVED_15:1;
    
                    unsigned int RESERVED_16:1;
                    unsigned int RESERVED_17:1;
                    unsigned int RESERVED_18:1;
                    unsigned int RESERVED_19:1;
    
                    unsigned int RESERVED_20:1;
                    unsigned int RESERVED_21:1;
                    unsigned int RESERVED_22:1;
                    unsigned int RESERVED_23:1;
    
                    unsigned int RESERVED_24:1;
                    unsigned int RESERVED_25:1;
                    unsigned int RESERVED_26:1;
                    unsigned int RESERVED_27:1;
    
                    unsigned int RESERVED_28:1;
                    unsigned int RESERVED_29:1;
                    unsigned int RESERVED_30:1;
                    unsigned int RESERVED_31:1;
    
        } status_bits_type;
    
    

Children
No data