السلام عليكم ...
لاحظ اخي هذه الصورة
اول ماتلاحظه هو ان الدالة ليس void بل متغير من نوع unsigned short
السؤال . لماذا جعلناها متغير ؟؟؟
الجواب : لاننا نريد ارجاع قيمة بعد تنفيذ اوامر الدالة ...
ارجع ثانية للصورة اعلاه وتابع الاوامر ..
1-بدأ عمل ال I2C واخراج الكلوكات ع طرفيه
2-تهيئة السليف للكتابة عليه
3- تحديد العنوان الذي سنقوم بتحديث بياناته وهذا يتم من خلال البراميتر الذي يتم اسناده في الدالة
4-اعادة تهيئة الـ I2C من اجل القراءه منه
5-تحديد حالة السليف للقراءه
6- القراءه من العنوان 0 وتسجيل القيمة في متغير
7- ايقاف الـ I2C
8- ارجاع قيمة العنوان 0 من السليف
بمعنى لو كان عندك عامل يعمل في فندق متكون من عدة طوابق وانت تريد تعرف كم شخص في الطابق الثاني .. ماذا تفعل ؟؟؟ ببساطة ستقول للعامل اذهب للطابق الثاني .. وهو هذا الامر
كود:
_i2c_read_ds1307(2);
ثم اعطني عدد الاشخاص اللذين يتواجدون فيه ... وهو هذا الامر
كود:
return i2c_read_data;
تحياتي