قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

wael-gn
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2012
المشاركات: 66
نشاط [ wael-gn ]
قوة السمعة:
قديم 15-05-2012, 12:36 AM المشاركة 121   
افتراضي



سيروا على بركة الله ونحن معكم شكرا لكم

اعلانات

الصورة الرمزية abdeslem1982
abdeslem1982
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2009
الدولة: تونس
المشاركات: 53
نشاط [ abdeslem1982 ]
قوة السمعة:
قديم 15-05-2012, 01:05 AM المشاركة 122   
افتراضي


اهلاا اخي جينيوس ....اولاا يشرفني ان اتعرف على اسمك

ثانياا سندخل فى الموضوع

وجدت كود وهاردوير جميل بمعنى الكلمه وقد فهمت فيه جزئيه كبيره
والكود مكتوب فى المشاركه رقم 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 سوف تعمل معك


هذا ما فهمت و الله اعلم


التعديل الأخير تم بواسطة : abdeslem1982 بتاريخ 15-05-2012 الساعة 01:09 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,473
نشاط [ lovevb6 ]
قوة السمعة:
قديم 15-05-2012, 01:19 AM المشاركة 123   
افتراضي


يوجد سر فى هذه الثابت 0x0001

فقد لاحظت انه 16 بت وهذا هو عدد الاعمده
اعتقد انه يجب تغيير هذا الثابت لكي يصبح 24 مثلاا
لازال فى سر
وانت قربتني لاكتشافه
بارك الله فيك يااخي

والله اعلم


الصورة الرمزية أبو معاذ 2010
أبو معاذ 2010
:: مشرف قسم الإنتاج الزراعي والحيواني والطاقة البديلة ::
تاريخ التسجيل: Feb 2010
المشاركات: 2,039
نشاط [ أبو معاذ 2010 ]
قوة السمعة:
قديم 15-05-2012, 01:20 AM المشاركة 124   
افتراضي


نعم اخي معاذ انشالله سيكون هذا الكود هو الاساس ..لانه بكل بساطه الداتا فى مصفوفه مما يسهل علينا الربط فيما بعد

انا موافق على هذه البدايه المباركه ...طبعاا مع تغيير نوع المسجل مع اني لا اعرف هلى هما الاثنين نفس الاداء او يوجد فرق
74164 مسجل إزاحة خالص بلا زيادة و لا نقصان ، يقوم بإزاحة البيانات المتواجدة على مخارجه مع كل نبضة مع نقل الحالة التي توجد عليها مدخل الداتا ( الرجلين 1 و 2 ) إلى المخرج رقم واحد .

74595 مسجل إزاحة + سجل يحتفظ ببيانات الأرجل الثمانية ليخرجها دفعة واحدة فيتم التحكم فيه بنبضتي ساعة واحدة للإزاحة و الثانية لإخراج محتوى السجل .

يعني بالنسبة للإنتقال بين الأعمدة 74164 أسهل و أكثر اقتصادا ( يوفر لنا مخرجا ) ، بينما بالنسبة للصفوف فمن المناسب استعمال 74595 حتى تخرج بيانات كل عمود دفعة واحدة .

4017 عداد عشري : له 10 مخارج ، مع كل نبضة تنتقل الحالة العلوية (1) من مخرج إلى الدي يليه ، و استعماله أسهل من الإثنين و يمكن ان يوفر لنا مخرجا إضافيا .


الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,473
نشاط [ lovevb6 ]
قوة السمعة:
قديم 15-05-2012, 01:22 AM المشاركة 125   
افتراضي


74164 مسجل إزاحة خالص بلا زيادة و لا نقصان ، يقوم بإزاحة البيانات المتواجدة على مخارجه مع كل نبضة مع نقل الحالة التي توجد عليها مدخل الداتا ( الرجلين 1 و 2 ) إلى المخرج رقم واحد .

74595 مسجل إزاحة + سجل يحتفظ ببيانات الأرجل الثمانية ليخرجها دفعة واحدة فيتم التحكم فيه بنبضتي ساعة واحدة للإزاحة و الثانية لإخراج محتوى السجل .

يعني بالنسبة للإنتقال بين الأعمدة 74164 أسهل و أكثر اقتصادا ( يوفر لنا مخرجا ) ، بينما بالنسبة للصفوف فمن المناسب استعمال 74595 حتى تخرج بيانات كل عمود دفعة واحدة .

4017 عداد عشري : له 10 مخارج ، مع كل نبضة تنتقل الحالة العلوية (1) من مخرج إلى الدي يليه ، و استعماله أسهل من الإثنين و يمكن ان يوفر لنا مخرجا إضافيا .
وهل التيار سيكون ثابت مثله مثل 595


الصورة الرمزية أبو معاذ 2010
أبو معاذ 2010
:: مشرف قسم الإنتاج الزراعي والحيواني والطاقة البديلة ::
تاريخ التسجيل: Feb 2010
المشاركات: 2,039
نشاط [ أبو معاذ 2010 ]
قوة السمعة:
قديم 15-05-2012, 01:28 AM المشاركة 126   
افتراضي


وهل التيار سيكون ثابت مثله مثل 595
بالنسبة للتيار لا مفر من استعمال uln2803 .


الصورة الرمزية abdeslem1982
abdeslem1982
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2009
الدولة: تونس
المشاركات: 53
نشاط [ abdeslem1982 ]
قوة السمعة:
قديم 15-05-2012, 01:34 AM المشاركة 127   
افتراضي


يوجد سر فى هذه الثابت 0x0001

فقد لاحظت انه 16 بت وهذا هو عدد الاعمده
اعتقد انه يجب تغيير هذا الثابت لكي يصبح 24 مثلاا
لازال فى سر
وانت قربتني لاكتشافه
بارك الله فيك يااخي

والله اعلم
0x0001
حسب مافهمت هذا المتغير يعمل فى الهارد مع انود الليد لكنه هنا هو مقلوب يعنى انه فى الهارد يجب ان تكون السركوى التى تعمل مع انود الليدات عندما تعطى نبضه موجب فى المدخل تصل انود الديود بالسالب فى مخرجها


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 15-05-2012, 01:37 AM المشاركة 128   
افتراضي


يوجد سر فى هذه الثابت 0x0001

فقد لاحظت انه 16 بت وهذا هو عدد الاعمده
اعتقد انه يجب تغيير هذا الثابت لكي يصبح 24 مثلاا
لازال فى سر
وانت قربتني لاكتشافه
بارك الله فيك يااخي

والله اعلم
هذا الثابت هو من نوع Int و عدد بتاته تتغير اوتوماتيكيا مع الحلقة التكرارية ...



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 04:50 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)