انا اردت ان اعمل برنامج بحيت يكون 4 ليد موصولين مع الميكرروكنترولر ومفتاح واحد موصول معه كدالك واريد عمل برنامج بحيت ادا ضغطت على زر يضئ ليد معين و عندما اضل ضاغط على زر لا يفعل اي شيء سيبقة ليد الدي اضاء مرة الاولة مضئ وعندما ارفع يدي على زر واضغط مرة اخرة يضئ ليد اخر
انا عملت دالك البرنامج بحيت استعملت متغير كلما يزيد عدد يضيء ليد معين
ولكن مشكلة :
[SIZE=4]انا اريد
[/size]
حينما اضل ضاغط على زر لا يفعل الميكرو اي دور وحينما ارفع يدي من زر واضغط يعمل دور معين
السلام عليكم ورحمة الله
أنا هقول لحضرتك فكرة ان شااااء الله تنفع يابشمهندس
انت أكيد بتختبر البينة اللى عليها السويتش لما تلاقيه انضغط بتعمل ديلاى علشان تلاشى النويز اللى بتنتج من السويتش
وبعدين بتقوله يزود المتغير وينور الليده اللى على البينة اللى برقم المتغير فى البورت اللى معرف عليه الليدات
الفكرة بقى انك قبل ماتزود المتغير ولا تنور الليدة
اعمل لوب يلف على نفسه طول مالسويتش مضغوط
مثلا
while portb.1=1;
بكده البرنامج هيفضل واقف عند الأمر ده لغايت لما السويتش يفصل
ساعتها البرنامج هيكمل تنفيذ بحيث هيزود المتغير وينور الليده ويرجع يختبر الشرط تانى
if(portb.1=1)
{
Delay_ms(150);
while(portb.1=1);
}
[/CODE
جملهwhile هتبقى الكومبايلر فى نفس المكان لغايت لما ترفع ايدك من الزرار
يعنى لما تلاقى الشرط غلط
حضرتك بقى تقدر تخليه ينفذ أى أمر تحبه داخل قوس الif وبعد الwhile