تفضل اخي ...
كود:
void main()
{trisb=1;trisc=0;trisd=0;portc=0;portd=0;portb=1;
while(1)
{if(portb.f0==0){
portc.f0=~portc.f0;
while(portb.f0==0){}
}
}
}
|
شكرا أخ حيدر على الكود
ولي ملحوظة وسؤال:
الملحوظة: أن اللد سيتم تغيير حالته بمجرد رفع الإصبع من على السويتش بعد الضغط عليه، وليس بمجرد الضغط على السويتش، فهل فهمي هذا صحيحا؟
والسؤال: حسب فهمي، فإن البرنامج سيظل يدور في الحلقة اللانهائية الداخلية، إلى أن يتم الضغط على المفتاح وحينها يخرج منها، ليبدأ تنفيذ الوظائف الأخرى (إنارة اللد في هذه الحالة)
والسؤال هو، هذا الكود يبدو فعالا لو أن المايكروكنترولر لا يفعل شيئا سوى إنارة وإطفاء اللد، فماذا لو أن المايكروكنترولر مطلوب منه وظائف أخرى، والتحكم في اللد هو فقط أحد هذه الوظائف، والاستجابة لهذا السويتش هو أحد هذه الوظائف، وتوجد سويتشات أخرى يتعين على المايكروكنترولر الاستجابة لها، وهناك أعمال أخرى يجب القيام بها في الخلفية؟ كيف سيعمل الكود؟ هل هو مناسب لهذه الحالة؟ ولو أنه غير مناسب فهل توجد حلول بديلة؟