اخي اعتذر على التأخير الخارج عن ارادتي
وجزاكالله الف خير على الحل لكن الحالات كانت كالتالي :
- جميع السويتشات يعمل الصورت .
- في حال السويتشان الاماميان واحد تتجه المركبه الى الخلف .
- في حال السويتش البسار يعمل تتجه السياره الى اليمين مع تشغيل الامام .
- في حال السويتش اليمين يعمل تتجه السياره الى اليسار مع تشيل الامام .
هذه جميع الحالات , سؤال أخر لماذا لم تضع تنفيذ الشرط داخل لوب ؟؟ ام هو سوف يكرر حتى يختل الشرط ؟؟؟
جزاك الله الف خير أخي الكريم
رد على وجه السرعة
ملاحظة انا استخدمة if للتوضيح لكن الحل العملى بإستخدام case اذا كان الكود كما تريد سأرفعه مع case
كود:
void main()
{
TRISA.F0 = 1 ; //PORT A0 INPUT (SENSOR A)
TRISA.F1 = 1 ; //PORT A1 INPUT (SENSOR B)
TRISA.F2 = 1 ; //PORT A2 INPUT (SENSOR C)
TRISA.F3 = 0 ; //PORT A3 OUTPUT (SOUND)
TRISB = 0 ; // ALL PORT B IS OUTPUT "FOR MOTERS CONTROL"
PORTA = 0;
//dd PORTA.f3 = 0;
PORTB = 0;
loop:
if (PORTA==0b00000111 )
{PORTA.f3=1;
PORTB=0b00000000 ;}
else PORTA.F3=0;
//ÝÍÕ A.F3
if (PORTA==0b00000100 ) {PORTB=0;} // ÇÐÇ ßÇä æÍÏå ãÖÛæØ æÑÝÊ ÇáÈÞíÉ
if (PORTA==0b00001111 ) PORTA.f3=1; else PORTA.F3=0; //ÝÍÕ A.F3
if (PORTA==0b00000010 ) PORTB=0b00001010 ;// right alone
if (PORTA==0b00001010 ) PORTB=0b00001010 ;// right with a3 led
if (PORTA==0b00000110 ) PORTB=0b00001010 ;// right with a2 swich
if (PORTA==0b00000001 ) PORTB=0b00010010 ;// LEFT alone
if (PORTA==0b00001001 ) PORTB=0b00010010 ;// LEFT with a3 led
if (PORTA==0b00000101 ) PORTB=0b00010010 ;// LEFT with a2 swich
if (PORTA==0b00000011 ) PORTB=0b00000100 ; // back
if (PORTA==0b00000000 ) PORTB=0b00000000 ;
goto loop;
}
// delay_ms(500);
// delay_ms(500); goto loop;
دعواتك
|