السلام عليكم أخي ياسين
هلا تفضلت بوضع تنويه أمام آخر سطرين حتى يتضح معنى الكود...أو تكرمت بشرح موجز للكود كله خصوصا وأنه مختصر ورائع حتى تتم الفائدة....تحياتي.
|
وعليكم السلام .. بالتأكيد أخي ، هذا شرح موجز أتمنى أن يفيدك ..
هذا الجزء الشائع :
كود:
if(porta.b0==1) {
while(porta.b0==1) { }
//كود
}
أعتقد واضح ,, يختبر حالة دخل المفتاح إذا ما وجد 1 (يعني الزر مضغوط) يدخل في حلقة فارغة لينتظر
حتى تنتهي الضغطة،، ثم ينفد التعليمات ..
------
الكود بسيط جدا أولا
//هذه التعليمة تعمل ازاحة للبور b بت واحد باتجاه اليسار
لو كان مثلا:
النتيجة:
- - -
في حالتنا هذه في البداية تكون قيمة ال portb = 0b00000000
-السطر الأول يعمل ازاحة نحو اليسار ثم يضيف واحد للنتيجة
مثال:
كود:
0b00000000
بعد الإزاحة
0b00000000
بعد إضافة واحد
0b00000001
مثال اخر
كود:
0b00000001
بعد الإزاحة
0b00000010
بعد إضافة واحد
0b00000011
...
وهكذا في كل مرة تتحرك الوحدات إلى اليسار ويضاف واحد ليملئ الفراغ في اليمين..
-السطر الثاني ببساطة يختبر ال portb إذا ما وصل للقيمة 1111 يعيده للصفر .. وتتكرر الدورة من جديد
أتمنى أن تتضح الفكرة,,
تحياتي..