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

   

أشرف الخطيب
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2009
الدولة: مصــــــــــــــــــــــــــــــر
المشاركات: 193
نشاط [ أشرف الخطيب ]
قوة السمعة:
قديم 02-04-2009, 11:40 PM المشاركة 289   
افتراضي



جزاك الله خيرا أستاذ حيدر وأنا سعيد لمشاركتى فى هذا المنتدى الجميل وفى هذه الدورة الشيقة وأشكر أستاذ أحمد عليها كثيرا وأتمنى له مواصلة الدورة وجزاكم الله خيرا

اعلانات

الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 632
نشاط [ ahmad_s_f ]
قوة السمعة:
قديم 02-04-2009, 11:46 PM المشاركة 290   
افتراضي


مثلا اذا كان تردد البك 1Mz فهذا يعني ان البك سينفذ مليون عملية بالثانية اذن لجعل زمن التأخير نصف ثانية اجعل قيمة العداد من صفر الى 500000 ولجعل زمن التأخير ثانية واحدة اجعل قيمة العداد من صفر الى مليون وهكذا
هذه المعلومة غير صحيحة ..

وذلك لسببين .. أهم سبب هو أننا لا نستطيع أن نحسب زمن تنفيذ الأمر بدقة إلا في لغة الأسمبلي أما لغة السي فهذا غير صحيح لأن الأمر الواحد يترجم لعدة أوامر في الأسمبلي (ولكن هناك طرق أخرى صعبة نوعاً ما لحساب سرعة تنفيذ الأوامر سنتطرق لها لاحقا إن شاء الله ) وقد وضحت ذلك بالتفصيل لأخي genuis (فادي) فأرجو منه أن يقوم بشرح ذلك لكم .. لأنه للأسف الشديد لدي بعض الظروف التي ستمنعني من التواصل معكم جيدا خلال هذه الفترة .

وفكرة جيدة أخي حيدر .. علما أنها كانت من ضمن الأفكار التي أنوي شرحها لكم مع الإجابات المقترحة للتمارين ولكن فكرتك ينقصها بعض التعديل وسأوضح لكم ذلك إن شاء الله في عند توضيح حل التمارين .

أرجو من المشرف العزيز // زكي شاكر أن يقوم بنقل المشاركات التي بعد مشاركتي حول التنبيهات المهمة الخاصة بالتمارين إلى موضوع مناقشات المشاركين في دورة المايكروسي .

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 03-04-2009, 12:44 AM المشاركة 291   
افتراضي


مرحبا بك استاذ احمد فينك يارجل .
في الحقيقة انا درست لغة الاسمبلي فقط مع المتحكم ولكنها كانت صعبة للغاية حتى كرهت الحاسبات بسبب هذه اللغة . ولكن المعلومة التي اعترضت عليها لاتزال عالقة في ذهني منذ ايام الدراسة . وطبعا لم اتاكد من مدى صحتها لاني اخذتها نظريا فقط .واشكركم جدا .وآسف اذا كنت قد اخطأت


mizort1989
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2009
المشاركات: 70
نشاط [ mizort1989 ]
قوة السمعة:
قديم 03-04-2009, 07:25 AM المشاركة 292   
افتراضي


هذه المعلومة غير صحيحة ..

وذلك لسببين .. أهم سبب هو أننا لا نستطيع أن نحسب زمن تنفيذ الأمر بدقة إلا في لغة الأسمبلي أما لغة السي فهذا غير صحيح لأن الأمر الواحد يترجم لعدة أوامر في الأسمبلي (ولكن هناك طرق أخرى صعبة نوعاً ما لحساب سرعة تنفيذ الأوامر سنتطرق لها لاحقا إن شاء الله ) وقد وضحت ذلك بالتفصيل لأخي genuis (فادي) فأرجو منه أن يقوم بشرح ذلك لكم .. لأنه للأسف الشديد لدي بعض الظروف التي ستمنعني من التواصل معكم جيدا خلال هذه الفترة .

وفكرة جيدة أخي حيدر .. علما أنها كانت من ضمن الأفكار التي أنوي شرحها لكم مع الإجابات المقترحة للتمارين ولكن فكرتك ينقصها بعض التعديل وسأوضح لكم ذلك إن شاء الله في عند توضيح حل التمارين .

أرجو من المشرف العزيز // زكي شاكر أن يقوم بنقل المشاركات التي بعد مشاركتي حول التنبيهات المهمة الخاصة بالتمارين إلى موضوع مناقشات المشاركين في دورة المايكروسي .
هذا الكلام صحيح فعلا عمليه الcompilation تتم one to many

و عشان تحسب الexecution time و الcpu time ديه عمليه صعبه

لازم ترجع فيها للisa بتاعت الprocessor المستخدم

و تشوف الcpi و الc و الT

cpi :cycle per instruction
c:number of instruction
T:clock cycle time

cpu time =cpi * c * T

و ده كله طبعا في الasemply مش في الHLL مئل الc و الjava

ده اللي بندرسه في الComputer Orgnizatio و الله اعلم


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 03-04-2009, 08:16 PM المشاركة 293   
افتراضي


السلام عليكم
كيف حال الجميع ؟ اتمنى ان تكون الصحة بخير واموركم على خير ما يرام..

اخي Moi12 :

قد بحثت عن الداتاشيت للمتحكم لديك فوجدت ان هناك تشابه بين
(PIC16f876A&PIC16F877A) وبالتالي التعامل معهما متشابه ..وللتحويل من دخل تشابهي الى رقمي(على البورت A) تستخدم سجل (CMCON) لتحويله الى دخل او خرج رقمي..[لا اعرف القيمة ان كانت تشبه المتحكم PIC16F628A هل هي (0x07) ام تحتلف فهذا يعتمد على الداتا شيت للمتحكم ولم اتعامل معه فعليا...]..وعندما تريد حرق برنامج الى البيك فان اول خطوة يعملها البرنامج هي مسج البرنامج القديم ومن ثم نسخ البرنامج الجديد فلا تشغل بالك بهذه النقطة كثير..حدود الجهد للمتحكم موجود ضمن الداتا شيت وهي بحدود (2فولت- 5.5 فولت ) تقريبا تبعا للداتا شيت للعنصر الذي لديك... اما المبرمجة التي وضعتها فستعمل معك باذن الله تعالى شريطة الاستعانه بالله وحده ..وان شاء الله ستحصل على كل خير..ولاي استفسار فالجميع ان شاء الله جاهزون للمساعدة..


موضوع زمن تنفيذ الاوامر :

ان موضوع زمن تنفيذ التعلميات يشغل الكثير من الناس وانا منهم..فكيف اعمل ساعة مع دقة التوقيت ؟؟وكيف احصل على عداد ثواني لتطبيق معين؟ هذا يشغلني الى الان...ولكن يجب عدم الخلط بين ازمنة تنفيذ التعليمات في الاسيمبلي مع لغات البرمجة عالية المستوى مثل الميكروبيسك والميكروسي..فالاسمبلي تبرمج مثل الطفل تماما يعمل فقط ما تامره به حرفيا وبالخطوات التي تامره بها ...ولتوضيح الفرق بين تنفيذ التعليمات بين الاسيبملي واللغات الاخرى مثل الميكروسي ساطرح مثالا بسيطا...

ان كان لديك طفل (رقم 1)عمره سنه والجو في عز البرد وهو يبكي وانت تريده ان يخرج خارج الغرفة التي لديك ليصل الى والدته التي في المطبخ مثلا..طبعا لن يستطيع الا اذا كان عبقري زمانه...
فيكون الخطوات التي يجب ان تعملها ليصل الى النتيجة هي كالتالي:

1-تخبره انك تريد منه الذهاب للمطبخ (حتى يفهم عليك والا بدك اياه يطلع في هالبرد من الغرفة ويترك لك المدفأة)
2-يقف الولد على قدميه.
3-يمشي باتجاه الباب.
4-يفتح الباب.
5-يتحرك خارج الغرفة.
6-يغلق الباب.
7-يسير بالتجاه المطبخ.
8-عندما يصل الى المطبخ تكون وصلت لمرادك(وهو انك حلللت مشكلة صراخه المزعج وتقدر تنام بهدوء).

طبعا نلاحظ كم الخطوات السابقة..وهكذا تتعامل الاسيمبلي بالخطوات البسيطة والمتسلسلة..طبعا كل خطوة من السابقة تاخذ فترة زمنية معينه ولنسمها (نبضة الساعة) اي نحتاج تقريبا 8 نبضات ساعة لتنفيذه في الاسيمبلي..اما لو كان لديك ولد عاقل وراشد (رقم 2)فاخطوات كالتالي:

1-تخبره انك تريد ان يخرج من الغرفة.
2-يقوم ويتجه الى الباب.
3-يخرج من الغرفة .
4-يصل الى المطبخ.

نلاحظ كمية الاختصار في التعليمات..فهي اصبحت 4 تعليمات..فليس هناك داعي لتوقف الولد بنفسك وتذكره ان يفتح الباب(والا كيف بدو يطلع وهو مغلق) وبعدها لازم يطلع ويغلق الباب خلفه ويتجه الى المطبخ وهناك يصل الى والدته..فهو يفهم انه ليذهب هناك يجب ان يخرج خارج الغرفة ويتجه الى المطبخ ..
وبالتالي نلاحظ ان هناك اختصار كبير في التعليمات وهذا ما تفعله اللغات مثل الميكروسي وغيرها تختصر ذلك في تعليمات بسيطة وسريعة..الان اذا سالتك كم نبضة ساعة عمل يحتاج الولد الثاني؟؟؟ ستقول 4 نبضات..هذا طبعا غير صحيح؟؟ فالخطوات التي عملها الولد في المثال الثاني هي نفس الاولى(مثل الوقوف وفتح الباب والخروج من الغرفة واغلاق الباب...الخ) وبالتالي فهو يحتاج الى 8 نبضات ساعة ايضا..اعتقد الان ظهر الفرق بين الاثنين..

فاللغات مثل الميكروسي تختصر الكثير من الخطوات في تعليماتها على عكس الاسيمبلي والتي يجب ان توضح كل الخطوات وتسلسلها والا لن تصل الى النتيجة الصحيحة والمرجوة من البرنامج..

ان المتحكم يحتوي بداخله على حجرات ذاكرة ويحتاج لاوامر للانتقال بين الحجرة والتي بجانبها..كما ان اخراج الارقام يحتاج خطوات ليوصل المعلومات من مكانها في الحجرات الى المعالج المركزي ومن ثم اخراجها الى المخارج مثلا..وبالتالي المقياس الفعلي هو العمل في الاسيمبلي وليس العمل في الميكروسي وغيرها .فهي تختصر عدة خطوات في امر واحد .وهذا ما يسبب الخطأ في حساب ازمنة تنفي التعليمات في الميكروسي وغيرها...ارجو ان اكون اوصلت الفكرة واي استفسار يمكن طرحه وان شاء الله تحصل على اجابة من جميع المشاركين..

واخر دعوانا ان الحمدلله رب العالمين..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 03-04-2009, 08:31 PM المشاركة 294   
افتراضي


اشكرك اخي فادي على التوضيح . وهل هذا يعني اننا لن نستطيع ضبط الوقت 100% الا مع الاسمبلي ؟
فاذا كان الجواب نعم فتأكد ان ضبط الوقت عندي لا يكون ولن يكون لانني لن اعود الى الاسمبلي ابدا ابدا


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 03-04-2009, 09:32 PM المشاركة 295   
افتراضي


السلام عليكم اخي حيدر.

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

واخر دعوانا ان الحمدلله رب العالمين...وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 03-04-2009, 11:47 PM المشاركة 296   
افتراضي


وهل هذا يعني اننا لن نستطيع ضبط الوقت 100% الا مع الاسمبلي ؟
فاذا كان الجواب نعم فتأكد ان ضبط الوقت عندي لا يكون ولن يكون لانني لن اعود الى الاسمبلي ابدا ابدا
الى هذا الحد أخي حيدر ..؟
عتدما تكمل ان شاء الله تعلم الميكروسي يمكنك ان تعود اليه وسترى ان اسمبلي البيك ليس بالشكل الذي تتصوره..
على اي حال كلام الاخ فادي صحيح ..
عندما نسمع ان الاسمبلي يضبط الوقت هذا فقط لان تعليمات الاسمبلي هي الاقرب لتفسير ما يحدث الكترونيا داخل البيك ..حول المسجلات والاعلام وتقسيم الترددات ..
ضبط الزمن الحقيقي في الاسمبلي او غيره هو الان بنفس الطريقة :
اعداد التايمر0 كعداد وبحيث يولد مقاطعة كلما اكمل العد وعاد الى الصفر..
كيف نعرف انه اكمل الدورة وعاد الى الصفر ؟:
لا يهم فالمتحكم هو الذي يعرف متى تتم المقاطعة . وما علينا الا ان
نوظفها في المكان المناسب من البرنامج لجعل متغير ما يضيف 1 على محتواه كل مرة تحدث هذه المقاطعة ..
ويمكن ان يكون المتغير مثلا عداد للثواني اول عداد في سلسلة عدادات ساعة رقمية ..
ما هي الفائدة من استعماله ؟ كان يكفي ان ندخل زمن تأخير 1 ثانية للعد ..
الفائدة هي ان التايمر 0 يشتغل مستقلا وباستمرار ولا يدخل في مراحل البرنامج الرئيس التي تنفذ متتابعة. وبذلك لا يكون تضييع للزمن اثناء تنفيد تعليمات البرنامج الكلية،ولا يـتأثر بطول مدة انجاز التعليمات هنا وقصرها هناك ..وهذا مهم.
من ناحية ثانية هناك عناصر الكترونية توصل مع البيك بطريقة I2C تحل مشاكل تدبير الزمن الحقيقي في كل اللغات..
وهذا تطبيق لها من الاخ ابراهيم مشكورا:
http://www.qariya.com/vb/showthread.php?t=36359



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