[left]
سلام،
برنامه ما orهارو نمی شناسه و & هارو می شناسه....مادر برنامه ازچنددستورif استفاده کردیم ولی وقتی می خواهیم برنامه را در protuse اجرا کنیم در همان حلقه اول گیر می کندو درواقع برنامه ما or هارو مانند and می شناسه چون ما انتظارداریم وقتی از and استفاده کنیم یعنی پین هارو هم زمان فعال کنیم(هر پین معادل یک کلید درprotuse درنظر گرفته شده )ولی در برنامه ما با فعال کردن یک پین (ولی برعکس مانند or عمل می کنند ) اجرا می شود
ممنون می شیم اگه زودجواب بدین!
total program:::::::::::::::
while (1)
{
if(PIND.0==0 || PIND.1==0 || PIND.3==0)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(5);
PORTB.0=1;
PORTB.1=1;
delay_ms(5);
}
else if(PIND.0==0 && PIND.1==1 && PIND.2==1 && PIND.3==1 && PIND.4==1)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(5);
PORTB.0=1;
PORTB.1=1;
delay_ms(5);
}
else if(PIND==1 || PIND.1==1)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(10);
PORTB.0=1;
PORTB.1=1;
delay_ms(10);
}
else if(PIND.3==0 || PIND.4==0)
{
PORTB.0=0;
delay_ms(10);
PORTB.0=1;
delay_ms(10);
PORTB.1=0;
delay_ms(5);
PORTB.1=1;
delay_ms(5);
}
else if(PIND.1==0 || PIND.2==0)
{
PORTB.1=0;
delay_ms(10);
PORTB.1=1;
delay_ms(10);
PORTB.0=0;
delay_ms(5);
PORTB.0=1;
delay_ms(5);
}
else if(PIND.0==0 && PIND.3==0 && PIND.4==0)
{
PORTB.0=0;
delay_ms(5);
PORTB.0=1;
delay_ms(5);
PORTB.1=0;
delay_ms(10);
PORTB.1=1;
delay_ms(10);
}
else if(PIND.0==0 && PIND.2==0 && PIND.3==0)
{
PORTB.0=0;
delay_ms(10);
PORTB.0=1;
delay_ms(10);
PORTB.1=0;
delay_ms(5);
PORTB.1=1;
delay_ms(5)
}
else if(PIND==0)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(10);
PORTB.0=1;
PORTB.1=1;
delay_ms(10);
}
else if(PIND.0==1 || PIND.1==0 || PIND.2==0 || PIND.3==0 || PIND.4==0)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(5);
PORTB.0=1;
PORTB.1=1;
delay_ms(5);
}
};
}
برنامه ما orهارو نمی شناسه و & هارو می شناسه....مادر برنامه ازچنددستورif استفاده کردیم ولی وقتی می خواهیم برنامه را در protuse اجرا کنیم در همان حلقه اول گیر می کندو درواقع برنامه ما or هارو مانند and می شناسه چون ما انتظارداریم وقتی از and استفاده کنیم یعنی پین هارو هم زمان فعال کنیم(هر پین معادل یک کلید درprotuse درنظر گرفته شده )ولی در برنامه ما با فعال کردن یک پین (ولی برعکس مانند or عمل می کنند ) اجرا می شود
ممنون می شیم اگه زودجواب بدین!
total program:::::::::::::::
while (1)
{
if(PIND.0==0 || PIND.1==0 || PIND.3==0)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(5);
PORTB.0=1;
PORTB.1=1;
delay_ms(5);
}
else if(PIND.0==0 && PIND.1==1 && PIND.2==1 && PIND.3==1 && PIND.4==1)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(5);
PORTB.0=1;
PORTB.1=1;
delay_ms(5);
}
else if(PIND==1 || PIND.1==1)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(10);
PORTB.0=1;
PORTB.1=1;
delay_ms(10);
}
else if(PIND.3==0 || PIND.4==0)
{
PORTB.0=0;
delay_ms(10);
PORTB.0=1;
delay_ms(10);
PORTB.1=0;
delay_ms(5);
PORTB.1=1;
delay_ms(5);
}
else if(PIND.1==0 || PIND.2==0)
{
PORTB.1=0;
delay_ms(10);
PORTB.1=1;
delay_ms(10);
PORTB.0=0;
delay_ms(5);
PORTB.0=1;
delay_ms(5);
}
else if(PIND.0==0 && PIND.3==0 && PIND.4==0)
{
PORTB.0=0;
delay_ms(5);
PORTB.0=1;
delay_ms(5);
PORTB.1=0;
delay_ms(10);
PORTB.1=1;
delay_ms(10);
}
else if(PIND.0==0 && PIND.2==0 && PIND.3==0)
{
PORTB.0=0;
delay_ms(10);
PORTB.0=1;
delay_ms(10);
PORTB.1=0;
delay_ms(5);
PORTB.1=1;
delay_ms(5)
}
else if(PIND==0)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(10);
PORTB.0=1;
PORTB.1=1;
delay_ms(10);
}
else if(PIND.0==1 || PIND.1==0 || PIND.2==0 || PIND.3==0 || PIND.4==0)
{
PORTB.0=0;
PORTB.1=0;
delay_ms(5);
PORTB.0=1;
PORTB.1=1;
delay_ms(5);
}
};
}
دیدگاه