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

   

الصورة الرمزية ahmad72
ahmad72
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2004
المشاركات: 723
نشاط [ ahmad72 ]
قوة السمعة:
قديم 31-05-2009, 12:38 AM المشاركة 9   
Thumbs up



السلام عليكم ورحمه الله وبركاته
استاذ فادى اقل ما يقال تسلم ايدك
وزادك الله من علمه
جزاك الله كل خير
السلام عليكم

اعلانات

زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 31-05-2009, 02:55 AM المشاركة 10   
x6


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

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

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


السلام عليكم ولرحمه الله وبركاته

معقول يا شباب ولا واحد فكر بالموضوع غير الاستاذ زكى

مع انه موضوع مهم على الاقل بالنسبه لى

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



الصبر الصبر ( والله يحب الصابرين )




من جهة ثانية هناك اعتقاد سائد ان البرمجة بلغات أخرى غير الاسمبلي، تغني عن الرجوع الى الداتا شيت..

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




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




يعلم الله أنني مشغول جدا جدا وليس لدي وقت ولكن سمحت لي الفرصة الآن بدقائق بسيطة أحاول أن أشرح فيها موجزا طريقة استخدام عدة صفحات من البك ( أو بالأصح banks ) لنخزن فيها المتغيرات .



هذا المثال قمت بعمله وهو سيحتل 100% من ذاكرة البك المسموحة لتخزين المتغيرات وذلك لأنه سيستغل جميع الصفحات أو البنوك .






والفكرة باختصار هي أننا نقوم بعمل مصفوفة الحد الأقصى من العناصر لها هو الحد الأقصى لهذا البنك فمثلا بنك 0 (زيرو) يحتوي على 96 متغير كحد أقصى إذن يمكننا عمل مصفوفة مكونة من 96 متغير ولا يمكننا عمل مصفوفة مكونة من 97 متغير لأننا إذا فعلنا ذلك ستظهر رسالة خطأ تفيد بعدم توفر ذاكرة كافية . مع أن البك لايزال يحتوي على متغيرات (أو مسجلات) لم تستخدم بعد ولكنها موجودة في صفحات أخرى أو بنوك أخرى .



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

ويمكننا بعد ذلك الربط بين تلك المصفوفات بالأوامر البرمجية اللازمة ( قليل من التفكير والمجهود يمكن الربط بينهم ).





إذن لنقوم بعمل مصفوفة مكونة من 176 متغير لابد من تقسيهم إلى مصفوفتين أحدهم 96 والأخرى 80 عنصر (متغير) كل مصفوفة لها اسم خاص بها .


==========================


ولنقوم بملئ ذاكرة البك ( الوصول للحد الأقصى ) يمكننا عمل مصفوفة مقسمة لأربع مصفوفات كل مصفوفة بها عدد من العناصر كما يلي



1- 96 عنصر

2- 80 عنصر
3- 96 عنصر
4- 96 عنصر





وستلاحظ هذه الارقام في الداتاشيت الخاصة بالبك في صفحة 19 أو 17 .

حيث ستلاحظ أن BANK0 يحتوي على 96 bytes لهم العنوان general Purpose Registers أي أن بنك صفر يحتوي على 96 بايت يمكن استخدامهم كمتغيرات وتبدأ هذه المتغيرات من العنوان 0x20 إلى العنوان 0x7f


كما ستلاحظ في بنك1 Bank1 وجود 80 مسجل فقط يمكن استخدامهم كمتغيرات تبدأ هذه المتغيرات من العنوان 0xa0

وفي بنك 2 Bank2 يوجد 16 مسجل بالإضافة إلى 80 مسجل فيصبح مجموعهم 96 مسجل . وتبدأ عناوينهم من 0x110

وفي بنك 3 Bank3 يوجد أيضا 16 مسجل + 80 مسجل أي المجموع 96
وتبدأ عناوينهم من 0x190


وبالتالي يمكنك عمل أربع مصفوفات كما يلي :



1- 96 عنصر

2- 80 عنصر
3- 96 عنصر
4- 96 عنصر





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



(أخونا المهندس زكي شاكر يمكنه توضيح اي استفسار خاص بالذاكرة إن شاء الله ) أما بالنسبة لي فمن يدري ربما يرزقني الله بفرصة أخرى للدخول للمنتدى

و الله أعلم ..





إليكم هذا المثال .






طبعا الأرقام التي في المصفوفات عشوائية والغرض منها التجربة فقط

يمكنكم نسخ الكود وترجمته ستلاحظون في الأسفل في برنامج مايكروسي
أن الذاكرة ram امتلأت بنسبة مئة في المئة .



كود:
 
char aa[]={
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36
} absolute 0x20;
// 96 elements in this matrix cawc
char cawc[]={
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36

} absolute 0x110;
// 80 elements in this matrix cdd
char cdd[]={
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
};

// 96 elements in this matrix ccc
char ccc[]={15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36,200,10,100,55,
15,16,100,55,87,36
} absolute 0x190;
 
void main()
{
}

ستلاحظ وجود الأمر absolute وهو مهم جدا فبدونه وعند تعريف أي متغير أو أي مصفوفه فإن مايكروسي يقوم بحجز متغيرات معينه في عناوين معينه أنت لا تعلمها (وهذا يسبب العديد من المشاكل )

الأمر absolute وظيفته تحديد العنوان في الذاكره الذي ستبدأ منه المصفوفة
فإذا كتبنا الأمر absolute 0x20 وكانت المصفوفة لدينا مكونه من 96 عنصر فإن أول عنصر في المصفوفة سيحتل العنوان 0x20 من الذاكرة وثاني عنصر سيحتل العنوان 0x21 وهكذا إلى نهاية بنك زيرو . وبهذا تأكدنا أن هذه المصفوفة ستحتل بنك زيرو بالكامل .

=====================================

من جهة أخرى لدي عتاب على الفريق القوي المتكامل ( الأستاذ أحمد (أبو عبد الله ) والأستاذ فادي والأستاذ حيدر )

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



ولكنني سعيد بهم جدا وسعيد بكل من أكمل الطريق بعد التوقف المؤقت للدورة وكل من حاول مساعدة إخوانه وتقديم إليهم المعلومات المفيدة .



حتى ألقاكم مرة أخرى .. لا تنسونا من دعواتكم



====================

وفقنا الله جميعا لما يحب ويرضى ورزقنا وإياكم العلم النافع والعمل الصالح





والسلام عليكم ورحمة الله وبركاته


التعديل الأخير تم بواسطة : ahmad_s_f بتاريخ 26-07-2009 الساعة 11:01 PM السبب: خطأ في عدد السجلات الخاصة بالمتحكم (سهوا)

الصورة الرمزية ahmad72
ahmad72
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2004
المشاركات: 723
نشاط [ ahmad72 ]
قوة السمعة:
قديم 31-05-2009, 08:41 PM المشاركة 12   
افتراضي


السلام عليكم ورحمه الله وبركاته
نورت المنتدى يا استاذ احمد
تسلم على الشرح الموجز المفيد المستفيض
ربنا يرجعك بالسلامه
السلام عليكم ورحمه الله وبركاته


geniusse01
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2008
الدولة: Jordan - Amman
المشاركات: 1,134
نشاط [ geniusse01 ]
قوة السمعة:
قديم 01-06-2009, 09:22 AM المشاركة 13   
افتراضي


السلام عليكم جميعا

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

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


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 9,848
نشاط [ حيدر علاج حسن ]
قوة السمعة:
قديم 01-06-2009, 10:57 AM المشاركة 14   
افتراضي


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


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


السلام عليكم ورحمة الله وبركاته

بداية أتمنى لكم جميعا التوفيق والسداد فى مشروع الرسائل المتحركة

وأشكر الأستاذ أحمد سمير على المعلومات القيمة ... بارك الله فيه وزاده من علمه..


معذرة أخى أبو عبد الله كنت أتمنى أن أتواصل معك بشكل أكثر فى الموضوع ولكنك تعلم ظروف الامتحانات ....

إن شاء الله سأحاول أن أكون معكم( إذا سمحت) بشكل أكثر لاحقا إن شاء الله...


الصورة الرمزية ahmad72
ahmad72
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2004
المشاركات: 723
نشاط [ ahmad72 ]
قوة السمعة:
قديم 03-06-2009, 01:57 AM المشاركة 16   
sun


السلام عليكم ورحمه الله وبركاته
اخى اشرف جزاك الله كل خير على الاهتمام
وادعوا الله ان يوفقك انت وكل احبابى فى الامتحانات
ونسعد بعودتكم جميعا قريبا باذن الله
سدد الله خطاكم اجمعين
السلام عليكم ورحمه الله وبركاته



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