下面測程序,執行while就變死循環了,愁死我了。高手幫看下,謝謝啦
void u8_read74hc165_f(void)
{
uint8 i,j;
uint8 temp[MAX_NUM_74HC165];
uint8 temp1[MAX_NUM_74HC165];
io_74hc165_sh_ld=0;
for(i=0;i<MAX_NUM_74HC165;i++)
{
temp[i]=0;
temp1[i]=0;
for(j=0;j<8;j++)
{
io_74hc165_sh_ld=1;//
io_74hc165_clk=0;//
if(io_74hc165_sda1)//
{
delay(500);
if(io_74hc165_sda1)
{
temp[i]|=0x1<<j;
while(io_74hc165_sda1);
}
io_74hc165_clk=1;//
break;
}
if(io_74hc165_sda2)//
{
delay(500);
if(io_74hc165_sda2)
{
temp1[i]|=0x1<<j;
while(io_74hc165_sda2);
}
io_74hc165_clk=1;//
break;
}
io_74hc165_clk=1;//
}
if((temp[i]!=0)||(temp1[i]!=0))
break;
}
io_74hc165_sh_ld=0;
}
|