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

accessing bitwise data in a data buffer

hi all,
iam a new to embedded programming and keil software.
i am struck with a problem how to access a bit in a data buffer.

the algo i need to implement is

data_buf of 32 bits is stored in the micro controller. i need to send those bits bit by bit. ie. starting from bit 0 to bit 31.

can anybody pls suggest me how to write a program in keil.

thanks in advance
uday

Parents
  • Hehe, here's something really ugly, but it does just what you asked for, right? Unless, of course, you would like to further refine your specifications ;-)

    unsigned long bdata data_buf;
    sbit data_buf_0  = data_buf ^ 0;
    sbit data_buf_1  = data_buf ^ 1;
    sbit data_buf_2  = data_buf ^ 2;
    sbit data_buf_3  = data_buf ^ 3;
    sbit data_buf_4  = data_buf ^ 4;
    sbit data_buf_5  = data_buf ^ 5;
    sbit data_buf_6  = data_buf ^ 6;
    sbit data_buf_7  = data_buf ^ 7;
    sbit data_buf_8  = data_buf ^ 8;
    sbit data_buf_9  = data_buf ^ 9;
    sbit data_buf_10 = data_buf ^ 10;
    sbit data_buf_11 = data_buf ^ 11;
    sbit data_buf_12 = data_buf ^ 12;
    sbit data_buf_13 = data_buf ^ 13;
    sbit data_buf_14 = data_buf ^ 14;
    sbit data_buf_15 = data_buf ^ 15;
    sbit data_buf_16 = data_buf ^ 16;
    sbit data_buf_17 = data_buf ^ 17;
    sbit data_buf_18 = data_buf ^ 18;
    sbit data_buf_19 = data_buf ^ 19;
    sbit data_buf_20 = data_buf ^ 20;
    sbit data_buf_21 = data_buf ^ 21;
    sbit data_buf_22 = data_buf ^ 22;
    sbit data_buf_23 = data_buf ^ 23;
    sbit data_buf_24 = data_buf ^ 24;
    sbit data_buf_25 = data_buf ^ 25;
    sbit data_buf_26 = data_buf ^ 26;
    sbit data_buf_27 = data_buf ^ 27;
    sbit data_buf_28 = data_buf ^ 28;
    sbit data_buf_29 = data_buf ^ 29;
    sbit data_buf_30 = data_buf ^ 30;
    sbit data_buf_31 = data_buf ^ 31;
    
    sbit P0_3 = P0 ^ 3;
    
    void main (void)
    {
        P0_3 = data_buf_0;
        P0_3 = data_buf_1;
        P0_3 = data_buf_2;
        P0_3 = data_buf_3;
        P0_3 = data_buf_4;
        P0_3 = data_buf_5;
        P0_3 = data_buf_6;
        P0_3 = data_buf_7;
        P0_3 = data_buf_8;
        P0_3 = data_buf_9;
        P0_3 = data_buf_10;
        P0_3 = data_buf_11;
        P0_3 = data_buf_12;
        P0_3 = data_buf_13;
        P0_3 = data_buf_14;
        P0_3 = data_buf_15;
        P0_3 = data_buf_16;
        P0_3 = data_buf_17;
        P0_3 = data_buf_18;
        P0_3 = data_buf_19;
        P0_3 = data_buf_20;
        P0_3 = data_buf_21;
        P0_3 = data_buf_22;
        P0_3 = data_buf_23;
        P0_3 = data_buf_24;
        P0_3 = data_buf_25;
        P0_3 = data_buf_26;
        P0_3 = data_buf_27;
        P0_3 = data_buf_28;
        P0_3 = data_buf_29;
        P0_3 = data_buf_30;
        P0_3 = data_buf_31;
    }

Reply
  • Hehe, here's something really ugly, but it does just what you asked for, right? Unless, of course, you would like to further refine your specifications ;-)

    unsigned long bdata data_buf;
    sbit data_buf_0  = data_buf ^ 0;
    sbit data_buf_1  = data_buf ^ 1;
    sbit data_buf_2  = data_buf ^ 2;
    sbit data_buf_3  = data_buf ^ 3;
    sbit data_buf_4  = data_buf ^ 4;
    sbit data_buf_5  = data_buf ^ 5;
    sbit data_buf_6  = data_buf ^ 6;
    sbit data_buf_7  = data_buf ^ 7;
    sbit data_buf_8  = data_buf ^ 8;
    sbit data_buf_9  = data_buf ^ 9;
    sbit data_buf_10 = data_buf ^ 10;
    sbit data_buf_11 = data_buf ^ 11;
    sbit data_buf_12 = data_buf ^ 12;
    sbit data_buf_13 = data_buf ^ 13;
    sbit data_buf_14 = data_buf ^ 14;
    sbit data_buf_15 = data_buf ^ 15;
    sbit data_buf_16 = data_buf ^ 16;
    sbit data_buf_17 = data_buf ^ 17;
    sbit data_buf_18 = data_buf ^ 18;
    sbit data_buf_19 = data_buf ^ 19;
    sbit data_buf_20 = data_buf ^ 20;
    sbit data_buf_21 = data_buf ^ 21;
    sbit data_buf_22 = data_buf ^ 22;
    sbit data_buf_23 = data_buf ^ 23;
    sbit data_buf_24 = data_buf ^ 24;
    sbit data_buf_25 = data_buf ^ 25;
    sbit data_buf_26 = data_buf ^ 26;
    sbit data_buf_27 = data_buf ^ 27;
    sbit data_buf_28 = data_buf ^ 28;
    sbit data_buf_29 = data_buf ^ 29;
    sbit data_buf_30 = data_buf ^ 30;
    sbit data_buf_31 = data_buf ^ 31;
    
    sbit P0_3 = P0 ^ 3;
    
    void main (void)
    {
        P0_3 = data_buf_0;
        P0_3 = data_buf_1;
        P0_3 = data_buf_2;
        P0_3 = data_buf_3;
        P0_3 = data_buf_4;
        P0_3 = data_buf_5;
        P0_3 = data_buf_6;
        P0_3 = data_buf_7;
        P0_3 = data_buf_8;
        P0_3 = data_buf_9;
        P0_3 = data_buf_10;
        P0_3 = data_buf_11;
        P0_3 = data_buf_12;
        P0_3 = data_buf_13;
        P0_3 = data_buf_14;
        P0_3 = data_buf_15;
        P0_3 = data_buf_16;
        P0_3 = data_buf_17;
        P0_3 = data_buf_18;
        P0_3 = data_buf_19;
        P0_3 = data_buf_20;
        P0_3 = data_buf_21;
        P0_3 = data_buf_22;
        P0_3 = data_buf_23;
        P0_3 = data_buf_24;
        P0_3 = data_buf_25;
        P0_3 = data_buf_26;
        P0_3 = data_buf_27;
        P0_3 = data_buf_28;
        P0_3 = data_buf_29;
        P0_3 = data_buf_30;
        P0_3 = data_buf_31;
    }

Children