原创 各种 位数据 倒序 函数

2011-8-20 01:19 2405 13 13 分类: MCU/ 嵌入式
/****************************************/
/* 函数名称: SwapD7_D0 */
/* 函数功能: D7-D0位置交换 */
/****************************************/
uint8_t SwapD7_D0(uint8_t data)
{
data=((data&0xf0)>>4) | ((data&0x0f)<<4);
data=((data&0xCC)>>2) | ((data&0x33)<<2);
data=((data&0xAA)>>1) | ((data&0x55)<<1);
return data;

}


void    ReverseBit(unsigned int* pValue)
{
    unsigned int n = *pValue;
    n = (n&0x55555555)<<1|(n&0xAAAAAAAA)>>1;
     n = (n&0x33333333)<<2|(n&0xCCCCCCCC)>>2;
     n = (n&0x0F0F0F0F)<<4|(n&0xF0F0F0F0)>>4;
     n = (n&0x00FF00FF)<<8|(n&gt;>8;
     n = (n&0x0000FFFF)<<16|(n&0xFFFF0000)>>16;
    *pValue = n;
}

改成8位的



//////////////////////////////////////////

u8 dat_b ,i;
dat_b=0x00;
for(i=0;i<=7;i++)
{
dat_b=dat_b|((Data>>i)&0x01);
if(i==7)break;
dat_b=dat_b<<1;
}
Data=dat_b;
return(Data);



//////////////////////////////////////////

****************************************/
* 函数名称: SwapD7_D0 */
* 函数功能: D7-D0位置交换 */
****************************************/
uint8_t SwapD7_D0(uint8_t b)
{
BBB.byte=b;
AAA.bit.b0=BBB.bit.b7;
AAA.bit.b1=BBB.bit.b6;
AAA.bit.b2=BBB.bit.b5;
AAA.bit.b3=BBB.bit.b4;
AAA.bit.b4=BBB.bit.b3;
AAA.bit.b5=BBB.bit.b2;
AAA.bit.b6=BBB.bit.b1;
AAA.bit.b7=BBB.bit.b0;
b=AAA.byte;
return b;
}


文章评论0条评论)

登录后参与讨论
我要评论
0
13
关闭 站长推荐上一条 /2 下一条