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

   

الصورة الرمزية mhmd.sh89
mhmd.sh89
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2009
الدولة: لبنان-ضاحية العزة والكرامة
المشاركات: 184
نشاط [ mhmd.sh89 ]
قوة السمعة:
قديم 31-12-2009, 01:43 PM المشاركة 1401   
افتراضي



void main()
{
unsigned short c=0;
portb=0;
porta=0;
trisb=0;
do
{
if(button(&PORTA,0,1,1))//Button(port,pin,time,active_state)
{c++;
if(c=1)
portb.f0=1;
else if(c==2)
PORTB.f1=1;
else if(c==3)
portb.f2=1;

}
else if(porta.f0=0);
{
if(button(&PORTA,0,3000,1))
{portb.f0=1;
portb.f1=1;
portb.f2=1;
}
}
else if(button(&PORTA,0,3000,0))
{portb.f0=0;
portb.f1=0;
portb.f2=0;
}

}while(1);
}

if I click the button awwal marra : b0=1
2 marra :b1=1
3 marra: b2=1

والباقي مبين

الخطأ وين ؟؟


التعديل الأخير تم بواسطة : mhmd.sh89 بتاريخ 31-12-2009 الساعة 02:22 PM
اعلانات

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 31-12-2009, 04:49 PM المشاركة 1402   
افتراضي


بعد اذنك فقط ليكون الكود واضح

كود:
void main() { unsigned short c=0; portb=0; porta=0; trisb=0; do { if(button(&PORTA,0,1,1))//Button(port,pin,time,active_state) {c++; if(c=1) portb.f0=1; else if(c==2) PORTB.f1=1; else if(c==3) portb.f2=1; } else if(porta.f0=0); { if(button(&PORTA,0,3000,1)) {portb.f0=1; portb.f1=1; portb.f2=1; } } else if(button(&PORTA,0,3000,0)) {portb.f0=0; portb.f1=0; portb.f2=0; } }while(1); } if I click the button awwal marra : b0=1 2 marra :b1=1 3 marra: b2=1 Read more: http://www.qariya.com/vb/showthread.php?p=342561#post342561#ixzz0bH3PMYvZ

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

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 31-12-2009, 04:58 PM المشاركة 1403   
افتراضي


الاخطاء كثيرة جدا .........
اولها حرف C اعتقد انه محجوز . استخدم حرف اخر او cc

بعد المقطع البرمجي الخاص بعبارة do استخدمت ايعاز else if مباشرة وبدون ان تسبقها بايعاز IF

لاحظ القوسين عند عبارة while استخدم واحد واحذف الاخر . واغلق الكود بقوس مشابه .

البرنامج غير مغلق بقوس {


الصورة الرمزية -hassan-
-hassan-
:: مهندس متميز ::
تاريخ التسجيل: Aug 2009
الدولة: syria
المشاركات: 315
نشاط [ -hassan- ]
قوة السمعة:
قديم 31-12-2009, 05:47 PM المشاركة 1404   
افتراضي


و

لا يوجد trisa


نبيل د
:: مهندس ::
تاريخ التسجيل: Mar 2008
المشاركات: 27
نشاط [ نبيل د ]
قوة السمعة:
قديم 31-12-2009, 06:37 PM المشاركة 1405   
افتراضي


ممكن توضيح السؤال اكثر ؟
تقصد ان تضع k بدلا من الصفر ؟ ما هو موقع الصفر ؟ لم تذكره في الكود .
السلام عليكم
بارك الله فيك الاخ حيدر السؤال هو وضع portd & portb في متغير واحد وهو k
وقد طرحت السؤال في قسم مناقشة المشاركين في دورة الميكروسي واجابني الاخ lahoioui و لكن البرنامج لم يعمل وقد اكتشفت اليوم ان برنامج الاخ lahoioui يعمل ولكن الخطا في برنامج الكمبيوتر واليك برنامج الاخ lahoioui بما تستفيد منه في المستقبل ان شاء الله
trisb=0xff;-------------------------------------0
trisd=0xff;--------------------------------------0
k=portd;-----------------------------------------0
k=k<<8;----------------------------------------0
k=k+portb;-------------------------------------0


نبيل د
:: مهندس ::
تاريخ التسجيل: Mar 2008
المشاركات: 27
نشاط [ نبيل د ]
قوة السمعة:
قديم 31-12-2009, 06:52 PM المشاركة 1406   
افتراضي


[quote=lahoioui;336726]لا يمكن أن تجمع بين >> و + في نفس التعليمة
أنا أعطيت لك الفكرة فقط
يجب أن يكون البرنامج هكذا

unsigned int k=0;---------------------------------------0

void main(){-----------------------------------------------0

trisb=0xff;-------------------------------------0
trisd=0xff;--------------------------------------0
k=portd;-----------------------------------------0
k=k<<8;----------------------------------------0
k=k+portb;-------------------------------------0

بارك الله فيك الاخ ahoioui البرنامج يعمل بشكل صحيح لكن عندما تفوق قيمة k 256 الارقام لا تظهر في برنامج الفيجوال و ساعمل ان شاء الله لحل المشكل اما فيما يخص علاقة التحويل من gray الى الثنائي فهي لا تعمل بالشكل المطلوب و قد فهمت العملية على ما اظن وهي k او استبعادي 2 صرب k اما الاخيرة فهل هي قسمة اتمنى التوضيح في اقرب وقت ...سلام


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 31-12-2009, 06:59 PM المشاركة 1407   
افتراضي


ارى ان المنفذين تم تعريفهما كمدخلات .
و تم استخدامهما للخرج .!!!!!!!!!!!!


الصورة الرمزية صقر الافق
صقر الافق
:: مهندس جيد ::
تاريخ التسجيل: Dec 2009
الدولة: المغرب
المشاركات: 215
نشاط [ صقر الافق ]
قوة السمعة:
قديم 31-12-2009, 11:07 PM المشاركة 1408   
افتراضي


أخي الكريم فأن من المبتدئين في هده الدورة عندس مشكل في مايخص تطبيقات السويتش
فالأوامر التي أضعها في البك بخصوص استقبال الاشارة و التحكم في الليدات ل تتطبق
ما الحل
المرجو كتابة كود عادي يستقبل 5v في الرجل A0 ويتحكم في ليد مرتبطة ب

B0
وشكرا
ألف تحية
الحل
بعدما قمت باعادة قراءة الكثب الكتاب 5
وجدت شيء لم يكن في علمي وهو ضرورة ربط MCLR ب 5V



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