اهلاا اخي جينيوس ....اولاا يشرفني ان اتعرف على اسمك
ثانياا سندخل فى الموضوع
وجدت كود وهاردوير جميل بمعنى الكلمه وقد فهمت فيه جزئيه كبيره
والكود مكتوب فى المشاركه رقم 92 الصفحه 12 من هذا الموضع
ولم تبقى الا جزئيه واحده فقط لم افهمها من الكود وهي الاتي
كود:
void send_data(unsigned int temp){
unsigned int Mask = 0x0001, t, Flag;
for (t=0; t<16; t++){
Flag = temp & Mask;
if(Flag==0) Serial_Data = 0;
else Serial_Data = 1;
SH_Clk = 1;
SH_Clk = 0;
Mask = Mask << 1;
}
ST_Clk = 1;
ST_Clk = 0;

وقد طبقت المشروع بالكامل وكانت النتائج فوق الممتازه وهي مرفقه بالفيديو
وهذه الجزئيه التي لم افهمها هي التى يمكننا زياده الماتركس وكذلك التحوير كما نشاء
اما باقي الكود فهو مفهوم الاا بعض جزئيات بسيطه لا توئثر فى تحوير الكود
ولازلت احاول فى فهم هذه الجزئيه
على العموم انا مع البدايه من الصفر وسوف احاول فهم هذا الكود من حين لاخر
وفقنا الله جميعاا
|
السلام عليكم
انا متابع للموضوع منذ البداية اكتفيت بالمشاهده فقط اخوكم مبتدئ
حسب الكود الحلقة for (t=0; t<16; t++) هى للتنقل بين كل بتات المتغير temp
بالاستعانة بالثابت Mask = 0x0001 الذى سوف تم ازاحة البيت الاول منه فى كل مره
بهذه Mask = Mask << 1;
و بالاستعمال نتيجة هذه المعادلة Flag = temp & Mask; نحصل على حالة كل بت
من المتغير temp و هى التى ستكون حالة Serial_Data
Serial_Data = 1
او
Serial_Data = 0
بالنسبة
SH_Clk = 1;
SH_Clk = 0;
واضح انها نبضه لا بد منها مثل المؤقت تمكن من نقل نبضة Serial_Data
اما
ST_Clk = 1;
ST_Clk = 0;
هى نبضه للمرور ل متغير temp جديد
بالنسبة لتغير فى الحلة 16 الى 24 اعتقد انه يجب عليك تغيير نوع كل المتغير ات
الى int سوف تعمل معك
هذا ما فهمت و الله اعلم