بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه
ان شاء الله سوف اشرح ابسط الطرق للبداء فعليا فى برمجة المتحكمات التى تحتوى على المعالج ارم بلغة التجميع
عن طريق برنامج
metrowerks CodeWarrior For ARM Developer Suite V1.2
وسوف نخوض تجارب عملية عن طريق برنامج المحاكاه بروتيوس
قد يسالنى شخص ما لماذا الميكروكنترولرز التى تحتوى على معالج ارم
اضافة الى ماذكرت فى المقدمة هنـــــــــــــــــــــــــا
فان معالجات ارم تعد من اقوى المعالجات فى تطوير الانظمة المدمجة عرفتها البشريه - يمكننا القول حتى الان
ولكن هذا قبل ان تقوم شركة مايكروشب بانتاج السلسلة الجديدة
PIC32
تتميز المايكروكنترولز التى تعتمد على الارم بالتبديد المنخفض جدا جدا للطاقة وامكانية العمل بجهود منخفضة جدا فمعالج الارف يحتاج فقط الى 1.8 فولت للعمل
كما انها رخيصة الثمن
دعنى اقول لك امر سعر المتحكم الدقيق
lpc2103
اقل من سعر المتحكم الدقيق
pic16f877a
مع العلم انه لا يوجد مقارنة من حيث الاداء والحجم والاضافات الداخليه
يكفى ال
lpc2103
فخرا انه يحتوى على ساعة الوقت الحقيقة وعلى عدد 2 هاردوير يورارت و من والعديد من المزايا الاخرى التى لم اتحدث عنها
من حيث الاداء
lpc21xx = pic32
من حيث السعر
lpc21xx < pic16f877a
================================================================================
==================
هنلك سوال قط يطرح نفسة هل الدخول الى عالم االارم سهل ام صعب؟
على حسب طريقة الدخول
اذا كنت تريد ان يكون اول برنامج لك عبارة عن محلل بصمه الصوت فبالتاكيد سوف تعانى
اما اذا كان دخولك سلس ولم تستعجل سوف تتمرحل فى مستوى الفهم وتنتقل من مرحلة الى اخرى بخطوات ثابتة
فالخبرات تكتسب بالمشاكل التى تواجهك فى عمليه البرمجة ولا تدرس
فلا تتوقع ان تدقن البرمجة فى يوم وليله
ولا تتوقع بمعرفتك لوظائف الاوامر انك سوف تتمكن من استخدامها بالطريقة الصحيحة من اول مرة
عليك بالاطلاع على الكثير من الاكواد والامثلة المتوفرة فى الانترنت
لاتقم بنسخ ولصق الكود يجب ان تعود نفسك على كتابة الاوامر يدويا حتى تتذكرها
تحتاج الى ما يعرف بدليل الاستخدام اضافة الى الداتا شيت
حتى تتمكن من برمجة مايكروكنترولر معين
فى الامثله سوف نستخدم كما ذكرت المايكروكنترولر lpc2103
قم بتحميل دليل الاستخدام من هنا
المتحكم ل بى سى 2103
لديه 32 مخرج-مدخل بعضها لديه العديد من الوظائف يتم اختيار الوظيفة عن طريق عبارات تحكم تحمل على مسجلات داخليه
وهى عمليه قد يعرفها الكثير من لديه خبرة فى برمجة متحكات اخرى مثل البيك او غيره
تختلف قيم عبارات التحكم واسماء المسجلات من مايكرو الى اخر لذلك سوف تحتاج الى دليل الاستخدام
كما تلاحظ ان البروسسر يتخاطب مع الملحقات عن طريق
VPB (VLSI Peripheral Bus)
وهى وصله مشتركة مع كل الملحقات
مثل المداخل والمخارج لذلك يتم اجاء اعدادات فى الاول
مثلا كبدايه نريد كتابة برنامج لجع كل المخارج تساوى
high
-------------------------------------------------
اولا نبحث عن المسجل المسوؤل عن وظائف المخارج
وفى هذا المتحكم يوجد 3 مسجلات مسوؤاله عن وظائف المخارج
وهم
PINSEL0 - 0xE002C000
وهو مسوؤل عن المخارج من المخرج 0 الى15
PINSEL1 - 0xE002C004
وهو مسوؤل عن المخارج من المخرج 16 الى32
PINSEL2 - 0xE002C014
لا يعنينا حاليا لندعة وشأنه :wacko:
اذا حتى نتمكن من جعل ال32 مخرج
high
نحتاج اولا الى ظبط هذه المسجلات حتى نقوم بتمكين الملحق
GPIO
وهو ملحق دخل وخرج الاغراض العامة
بعد ان نقوم بتمكينه نحتاج الى ظبط قيمه مسجل اخر اسمه
IODIR-0xE0028008
وهو مسجل مشابه للمسجل
TRIS
لمن لديهم خبره فى البيك ووظيفته تحديد اتجاه كل مخرج هل هو دخل ام خرج
اذا كنت اريد ان اجعل المخارج ال15 الاولى دخل والاخيره خرج فيجب تحميل المسجل بالقيمة التاليه
0X0000FFFF
حيث 0 تعنى دخل و1 تعنى خرج
كما تلاحظوون فاننى قمت بكتابه اسم المسجلات ورقم بالقرب منها
الاسم هو لك حتى تعرف اسم المسجل الرقم هو العنوان الذى سوف تتخاطب به مع البروسيسور
فاذا كتبت
LDR R0 , =PINSEL0
لن يفهم المعالج ماذا تقصد بكلامك هذا
-------------------------------------------------------------------------------------------------------------------------------------------------------
طريقه ظبط اعدادات الكمبايلر
قم بفتح البرنامج بعد الثتبيت
قم بانشاء مشروع جديد
file / new
اختر
Empty project
حدد المكان الذى تريد حفظ المشروع فيه عن طريق Set
سوف تظهر لك نافذه صغيرة
اضغط مره اخرى على NEW
لكن هذه المره اختر فايل نصى واضيفه الى المشروع عن طريق الخطوات التاليه
قم بكتابه الكود المرفق يدويا للافئدة
اضغط على حفظ واحفظة بالامتداد
.s
بعد ذلك قم بالخطوة التاليه لتضمين الكود الى المشروع
بعد ذلك اضغط هنا لظبط الاعدادات
قم بربط المجمع عن طريق الاعدادات التاليه
ثم اذهب الى لنكر وغير القيمه التاليه
ومن ثم نوع الخرج كما فى الصوره
ثم اضغط الى اوكى
بعد ذلك اضغط على
make
والباقى كأى كمبايلر اذا يوحد اخطاء سوف يظهرها وذا تم الامر بنجاح سوف يتم استخراج الملف
name.elf
وهو الملف الهدف
الملف المرفق يحتوى على دائرة بسيطه
high اذا تم تنفيز البرنامج اعلاه بنجاح سوف تلاحظ جميع المخارج المحاكى
===============================================================================
شرح البرنامج اعلاه
LDR R0 , =0xE002C000 \\ حمل القيمه الى المسجل ار0
LDR R1 , = 0X00000000 \\ حمل القيمه الى المسجل ار1
STR R1 , [R0] \\ خزن القيمه المسجله فى المسجل ار1 الى العنوان ار 0
كدا نكون ارسلنا عبارة التحكم
0x00000000
الى المسجل
PINSIL0
وبالتالى المخارج من 0 الى 15 سوف تعمل بوظيفه مخارج ومداخل اغراض عامه
المسجلين
PINSIL0
PINSIL1
لهما القيمه
0x00000000
طبيعيا ولاتحتاج الى ظبتهم اذا كنت تريد ان تستخدم المخارج بوظيفه مداخل ومخارج اغراض عامه
ماورد اعلاه من اسطر فقط لشرح عمليه الظبط
اذا حزفتها سوف يعمل البرنامج
//================================================================================
================================
اختبار مهارات
اذا شعر احدكم فى انجزاب للشرح ولديه حماس ليتقدم ويطور مهاراته ارجو ان يحل الاختبار التالى ويرفع الحل فى ملف وورد حتى نتناقش فيه
السؤال الاول :
قم بشرح الكوود التالى
هو عبارة عن باقى البرنامج
LDR R0 , = 0xE0028008
LDR R1 , = 0XFFFFFFFF
STR R1 , [R0]
LDR R0 , =0xE0028000
LDR R1 , = 0XFFFFFFFF
STR R1 , [R0]
------------------
السؤال الثانى
قم بكتابه برنامج لارسال الحرف
H
عن طريق ال
UART1
بمعدل ارسال
9.6 kp/s
-------------------------------------------------------------------------------------------------
بالتوفيق
اعتذر عن رداءه التنسيق والاخطاء الاملائية
الكود
llpc.s
يحتوى على البرنامج بشكل واضح
ان هو الا جهد مقلّ يا اخوانى اعذرونى ان اخطات اوقصرت
والله الموفق
اخوكم محمد الامين







