TCP/IP问题

ertao2008 2010-10-07 10:06:27
下面的接收数据程序程序中有条语句
for(num_packets = 0; valid_bits; num_packets++)
{
valid_bits &= valid_bits - 1;
}
这段程序我看不懂,希望老师给我解释一下,谢谢!


//****************************************************************/
//CP2200芯片接收数据函数
/****************************************************************/
UCHAR xdata * rcve_frame(void)

{
bit rx_ok;
bit skip = 0;
UINT1 cplen;
unsigned int i;
UCHAR xdata * buf;

unsigned char interrupt_read;
unsigned char valid_bits;
unsigned char num_packets;


interrupt_read = INT1;
interrupt_read = INT0; //清中断标志


if( interrupt_read & RXINT) //判断接收中断是否产生
{

valid_bits = TLBVALID; //对接收数据包进行统计
for(num_packets = 0; valid_bits; num_packets++)
{
valid_bits &= valid_bits - 1;
}


if( num_packets >= 7) //接收区超过7个数据包,停止接收
{
RXCN = RXINH;
}
}
...全文
50 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
edison1226 2010-10-08
学习中~~~
回复
hui8899988 2010-10-08
同样学习中
回复
smilestone322 2010-10-07
接收的 包-1,表示你已经接收到一个包
回复
cnzdgs 2010-10-07
valid_bits &= valid_bits - 1;
这行代码是把valid_bits最右边的"1"清除,这个循环的作用是统计一下valid_bits中有多少位是1。
回复
相关推荐
发帖
驱动开发/核心开发
创建于2007-09-28

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
申请成为版主
帖子事件
创建了帖子
2010-10-07 10:06
社区公告
暂无公告