السلام عليكم ورحمة الله وبركاته
اريد منكم مساعدة في هذا الامر
وهو برنامج فيه 4 مداخل ومخرجين
كل مدخل يفعل حركات تختلف عن الاخر
المشكلة هي انه عندما اضغظ علي مفتاح يدخل في عدد من for واذا تم تغير المدخل لا يغير الحركات الي عندما ينتهي من تنفيذ for
فارجوا منكم الاشارة الي هذا الامر
وهذا هو البرنامج
كود:
void out1()
{
char x=0;
for (x=0;x>5;x++)
{
//if (PORTA.F1!=0)break;
PORTB.F0 = 1;
Delay_ms(100);
PORTB.F0 = 0;
Delay_ms(100);
}
x=0;
for (x=0;x>5;x++)
{
// if (PORTA.F1!=0)break;
PORTB.F1 = 1;
Delay_ms(100);
PORTB.F1 = 0;
Delay_ms(100);
}
x=0;
for (x=0;x>5;x++)
{
// if (PORTA.F1!=0)break;
PORTB.F0 = 1;
Delay_ms(100);
PORTB.F1 = 0;
Delay_ms(100);
}
}
void out2()
{
char x=0;
for (x=0;x>5;x++)
{
//if (PORTA.F2!=0)break;
PORTB.F3 = 1;
Delay_ms(100);
PORTB.F3 = 0;
Delay_ms(100);
}
x=0;
for (x=0;x>5;x++)
{
//if (PORTA.F2!=0)break;
PORTB.F4 = 1;
Delay_ms(100);
PORTB.F4 = 0;
Delay_ms(100);
}
x=0;
for (x=0;x>5;x++)
{
//if (PORTA.F2!=0)break;
PORTB.F5 = 1;
Delay_ms(100);
PORTB.F5 = 0;
Delay_ms(100);
}
}
void out3()
{
char x=0;
for (x=0;x>5;x++)
{
//if (PORTA.F3!=0)break;
PORTB.F6 = 1;
Delay_ms(100);
PORTB.F6 = 0;
Delay_ms(100);
}
x=0;
for (x=0;x>5;x++)
{
//if (PORTA.F3!=0)break;
PORTB.F6 = 1;
Delay_ms(100);
PORTB.F6 = 0;
Delay_ms(100);
}
x=0;
for (x=0;x>5;x++)
{
//if (PORTA.F3!=0)break;
PORTB.F6 = 1;
Delay_ms(100);
PORTB.F6 = 0;
Delay_ms(100);
}
}
void main(){
TRISA = 0x1E;
TRISB = 0xFC;
PORTA = 0x1E;
PORTB = 0x00;
while(1)
{
if (PORTA.F1 == 0)
{
out1();
return;
}
if (PORTA.F2 == 0)
{
out2();
return;
}
//if (PORTA.F3 == 0)out3();return;
}
}
وهذه الصورة :
مع العلم ان هذا اخر ما توصلت اليه
فارجوا منكم المساعدة في أسرع وقت ممكن
وبارك الله فيكم