قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:151
قديم 20-05-2014, 08:21 PM المشاركة 1   
x2 حل لهذا الكود Twitter FaceBook Google+



السلام عليكم

فى هذا الدائرة عند الضغط على المفتاح الاول يضىء الليد وعند الضغط مرة اخرى يطفى ليد وهكذا الحال مع ليد الاخر




وهذا هو الكود

كود:
#define       is       ==
#define       preseed  0
#define       sw1      porta.f0
#define       sw2      porta.f1
char x=0,y=0;
void init()
{
 cmcon=7;
 trisa=3;
 porta=0;
 trisb=0;
 portb=0;
}
void main()
{
 init();
 while(1)
 {
 if(sw1 is preseed){delay_ms(10);
                    while(sw1 is preseed);
                    delay_ms(10);
                    x++;
                    if(x is 3)x=1;
                   }
 if(sw2 is preseed){
                    delay_ms(10);
                    while(sw2 is preseed);
                    delay_ms(10);
                    y++;
                    if(y is 3)y=1;
                   }
if(x is 1){portb.f0=1;y=0;}
if(x is 2){portb.f0=0;}
if(y is 1){portb.f1=1;x=0;}
if(y is 2){portb.f1=0;}


 }
}
[B]

اريد عند الضغط على المفتاح الاول وتشغيل الليد يلغى المفتاح الثانى اى عند الضغط على المفتاح الثانى اثناء تشغيل الليد الاول لايعمل الليد الثانى وهكذا الحال مع المفتاح الثانى كتبت الكود بهذا الشكل

كود:
if(x is 1){portb.f0=1;y=0;}

ولاكن المشكلة هذا الكود يعمل مع المفتاح الاول ولا يعمل مع المفتاح الثانى ؟؟



اين المشكلة وكيف اكتب الكود ؟؟

اعلانات

الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:151
قديم 20-05-2014, 08:28 PM المشاركة 2   
افتراضي


ملف الدائرة


http://www.gulfup.com/?qbZJyV

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 701
نشاط [ hamzazayyad ]
قوة السمعة:0
قديم 20-05-2014, 10:05 PM المشاركة 3   
افتراضي


تفضل اخي الكود بعد التعديل
http://www.4shared.com/rar/L8eBx089ce/nawzad2.html


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:151
قديم 21-05-2014, 06:15 AM المشاركة 4   
افتراضي


شكرا جزيلا لك اخى العزيز بارك الله فيك


الصورة الرمزية سعيد قادر
سعيد قادر
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2009
الدولة: العراق/ كوردستان
المشاركات: 2,916
نشاط [ سعيد قادر ]
قوة السمعة:151
قديم 21-05-2014, 06:24 AM المشاركة 5   
افتراضي


كان محيرنى هذا الكود شكرا لك

الكود


كود:
#line 1 "C:/Users/OwnerH/Desktop/SAEAD/nawzad.2/MyProject.c"
int x=0,y=0;
#line 14 "C:/Users/OwnerH/Desktop/SAEAD/nawzad.2/MyProject.c"
void init()
 {
 cmcon=7;
 trisa=3;
 porta=0;
 TRISB=0;
 PORTB=0;
 }
void main()
  {
   init();
   while(1)
  {
    {
     if(( porta.f0   ==   0 )&&(  PORTB.F1   ==   0 ))
    delay_ms(10);
    while( porta.f0   ==   0 )
    delay_ms(10);
    x++;
    if(x <= 1)
    PORTB.F0  =  1  ;
    if(x >= 2)
           {
            PORTB.F0  =  0 ;
            x=0;
           }
  }
    if(( porta.f1   ==   0 )&&(  PORTB.F0   ==   0 )) {
    PORTB.F7=1 ;
    delay_ms(10);
    while( porta.f1   ==   0 )
    delay_ms(10);
    y++;
    if(y == 1)
    PORTB.F1  =  1  ;
    if(y == 2)
             {
              PORTB.F1  =  0  ;
              y=0;
             }
 }
 }
}


الصورة الرمزية احمدمعاطى
احمدمعاطى
:: مهندس جيد ::
تاريخ التسجيل: Apr 2009
الدولة: مدينة الاسكندريه
المشاركات: 271
نشاط [ احمدمعاطى ]
قوة السمعة:0
قديم 22-05-2014, 07:38 AM المشاركة 6   
افتراضي


السلام عليكم

اريد عند الضغط على المفتاح الاول وتشغيل الليد يلغى المفتاح الثانى اى عند الضغط على المفتاح الثانى اثناء تشغيل الليد الاول لايعمل الليد الثانى وهكذا الحال مع المفتاح الثانى كتبت الكود بهذا الشكل

كود:
if(x is 1){portb.f0=1;y=0;}

ولاكن المشكلة هذا الكود يعمل مع المفتاح الاول ولا يعمل مع المفتاح الثانى ؟؟




اين المشكلة وكيف اكتب الكود ؟؟



اخى سعيد جرب هذا الكود
كود:
void main(){

trisa =0b11110111;
trisb =0b00000000;
portb =0;
 maty:
           if (portb.f1==0){
if (porta.f0==0){while(porta.f0==0){} portb.f0=~portb.f0;}   }
           if (portb.f0==0){
if (porta.f1==0){while(porta.f1==0){} portb.f1=~portb.f1;}   }

goto maty;
}


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 22-05-2014, 09:11 AM المشاركة 7   
افتراضي


السلام عليكم ورحمة الله وبركاته
أخي الكريم م/سعيد قادر .. إليك حل المشكلة
كود:


#define is == #define preseed 0 #define sw1 porta.f0 #define sw2 porta.f1 char x=0,y=0; void init() { cmcon=7; trisa=3; porta=0; trisb=0; portb=0; } void main() { init(); while(1) { if(sw1 is preseed && y!=1){delay_ms(10); while(sw1 is preseed); delay_ms(10); x++; if(x is 3)x=1; } if(sw2 is preseed && x!=1){ delay_ms(10); while(sw2 is preseed); delay_ms(10); y++; if(y is 3)y=1; } if(x is 1){portb.f0=1;} if(x is 2){portb.f0=0;} if(y is 1){portb.f1=1;} if(y is 2){portb.f1=0;} } }
الرجاء مراجعة الكود ومحاولة فهمه .. وإذا كان هناك اي شيء يحتاج إلى ايضاح أخبرني ..

تمنياتي بكل التوفيق


الصورة الرمزية احمدمعاطى
احمدمعاطى
:: مهندس جيد ::
تاريخ التسجيل: Apr 2009
الدولة: مدينة الاسكندريه
المشاركات: 271
نشاط [ احمدمعاطى ]
قوة السمعة:0
قديم 22-05-2014, 11:44 AM المشاركة 8   
افتراضي


السلام عليكم ورحمة الله وبركاته
أخي الكريم م/سعيد قادر .. إليك حل المشكلة
كود:


#define is == #define preseed 0 #define sw1 porta.f0 #define sw2 porta.f1 char x=0,y=0; void init() { cmcon=7; trisa=3; porta=0; trisb=0; portb=0; } void main() { init(); while(1) { if(sw1 is preseed && y!=1){delay_ms(10); while(sw1 is preseed); delay_ms(10); x++; if(x is 3)x=1; } if(sw2 is preseed && x!=1){ delay_ms(10); while(sw2 is preseed); delay_ms(10); y++; if(y is 3)y=1; } if(x is 1){portb.f0=1;} if(x is 2){portb.f0=0;} if(y is 1){portb.f1=1;} if(y is 2){portb.f1=0;} } }
الرجاء مراجعة الكود ومحاولة فهمه .. وإذا كان هناك اي شيء يحتاج إلى ايضاح أخبرني ..

تمنياتي بكل التوفيق
اهلا بالاستاذ الكبير ردك اعطى للموضوع مذاق خاص
بالفعل هذا الكود به فكر عالى و ارجو ان تشاهد البرنامج السابق لمشاركتك
وتقول رايك في فكرته البسيطه

ما تعلمناه من استاذنا الكبير ان يفضل ان تقل الاوامر فى البرنامج طالما انها ستنتج النتيجه المراده من البرنامج

و نتمنى منك ان لا تحرمنا من تواجدك معنا

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 01:08 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025