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

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 06-06-2011, 09:30 AM المشاركة 1   
افتراضي استخدام جداول البحث Look Up Tables كمقدمة لاحتراف برمجة الدوال المعقدة مثل sinx و log Twitter FaceBook Google+






استخدام جداول البحث Look Up Tables كمقدمة لاحتراف برمجة الدوال المعقدة مثل sinx و logx و....
ملخص Abstract :
معرفة كيفية استخدام جداول البحث مهارة قيمة لأى مبرمج فهى تسمح لنا باستبدال روتينات الحسابات المعقدة بعملية مصفوفة مفهرسة بسيطة.
هذه المقالة تقدم طرق تطبيق هذه الجداول فى برمجيات Flowcodeوتقديم عرض لأمثلة تبين هذه التقنيات.

فى بعض التطبيقات يمكن استخدام جداول البحث كبديل للحسابات المعقدة ؟ إذا كانت نتيجة الحساب معروفة (لجميع القيم الممكنة لمتغيرات الدخل ) فيمكن أن تحفظ (تخزن) فى ذاكرة الميكروكونترولر (إذا سمحت حدود الذاكرة بذلك) ويتم الوصول اليها من خلال التحكم متغيرات الدخل .
يمكن الحصول على البيانات من برامج آخرى ( مثل جداول البيانات spreadsheets, و مسجلات البياناتdata loggers وحزم البرامج الرياضية بمساعدة الكومبيوتر mathematical CAD ) وإستيرادها imported إلى برمجيات Flowcode كمصفوفات من البيانات .
كمثال بسيط يستخدم متغير دخل مفرد (وحيد) : بعض التطبيقات تحتاج لقيم موجة جيبية sine wave على فترات قدرها واحد درجة 1 degree intervals . حساب هذه القيم خلال تنفيذ البرنامج سوف يستهلك الوقت ويحتاج إلى قدر كبير من ذاكرة البرنامج وذاكرة البيانات . يمكن الإعداد (التجهيز) المسبق للحسابات باستخدام جدول بيانات spreadsheet وإستيراده فى شكل مصفوفة بالترتيب (بالنظام) الصحيح بما يسمح لقيمة الزاوية أن تستخدم كدليل (فهرس) لمصفوفة array index .
شكل الإكسل Excel التالى يبين مثال لتوليد مصفوفات بلغة السى والمطلوبة للميكروكونترولر PIC باستخدام بيانات الموجة الجيبية .






قيم الأعداد الغير صحيح ( تحتوى على كسر عشرى ) يتم ضربها فى 100 وتقريبها بحيث يمكن حفظها وتناولها كبايت مفرد (وحيد) . كود المصفوفة المناسب يمكن نسخه ولصقه مباشرة فى رمز (صندوق) كود لغة السى فى برمجيات Flowcode .


معظم الميكروكونترولر تسمح بحفظ البيانات فى ثلاثة أماكن منفصلة .
  • ذاكرة البيانات Data memory (RAM) .
  • ذاكرة البيانات الغير متطايرة Non-volatile data memory (EEPROM) .
  • ذاكرة البرنامج Program memory (FLASH) .
البيانات المحفوظة فى ذاكرة البرنامج لا يمكن التعديل فيها بعد تحميلها (إلى وقت قريب) . الآن الكثير من الأجهزة الحديثة عادة تسمح بتعديل ذاكرة البرنامج من خلال البرنامج ولكن العملية تكون بطيئة ومعقدة .
البيانت المحفوظة فى ذاكرة البياناتEEPROMتكون بطيئة فى الكتابة ولكن سريعة وسهلة فى القراءة وسوف لا تفقد عند إزالة القدرة .
البيانات المحفوظة فى RAM تكون سريعة وسهلة فى القراءة والكتابة لكنها متطايرة ويجب إعادة الحسابات فى كل مرة يتم توصيل القدرة للجهاز . قد تكون مفيدة إذا أمكن إجراء الحسابات خلال فترة الإعداد والبدء.
فى مثال الموجة الجيبية نحتاج فقط لتخزين ربع القيم (0 to 90 degrees) . يمكن الوصول إلى البيانات بطريقة تسمح بتوليد قيم كل من الجيب sine وجيب التمام cosine والظل tangent باستخدام حسابات بسيطة فقط .

أوامر البرنامج Program commands

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 06-06-2011, 09:35 AM المشاركة 2   
افتراضي


أوامر البرنامج Program commands
برمجيات Flowcode تعتمد مباشرة جداول البحث look-up tables فى كل من ذاكرة البيانات ( كسلاسل نصية أو مصفوفاتstrings/arrays ) وذاكرة EEPROM ( باستخدام المكون EEPROM ) . خيار ذاكرة البرنامج يحتاج استخدام رموز (صناديق) كود لغة السى .

أولا : إعلان أو تعريف جدول البحث

صيغة أمر حفظ (تخزين) حتى 256 bytes من البيانات فى ذاكرة البرنامج للميكروكونترولر PIC هى :







كود:
 
rom char* table_name = {d0, d1,d2,d3,d4,…......,d255};
rom char* LUT = {0,17,34,50,64,77,87,94,98,100,98,94,87,77,64,50,34,17,0};
ثانيا :
الوصول إلى عنصر فردى من جدول البحث للبيانات :
يحتاج للكود التالى :










كود:
FCV_DATA_VAL = table_name [FCV_INDEX];

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

الصورة الرمزية mar7aba_01
mar7aba_01
:: مهندس متميز ::
تاريخ التسجيل: Jan 2010
الدولة: المغرب
المشاركات: 746
نشاط [ mar7aba_01 ]
قوة السمعة:0
قديم 06-06-2011, 11:29 AM المشاركة 3   
افتراضي


جزاك الله خيرا


الصورة الرمزية noornader
noornader
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2007
المشاركات: 608
نشاط [ noornader ]
قوة السمعة:97
قديم 06-06-2011, 03:49 PM المشاركة 4   
افتراضي


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


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 06-06-2011, 04:43 PM المشاركة 5   
افتراضي


اخى الكريم

شكرا جزيلا لك

بارك الله فيك

مع تمنياتى بدوام التوفيق


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:333
قديم 06-06-2011, 04:48 PM المشاركة 6   
افتراضي


شكرا اخى العزيز/ فتح الله على هذه الاضافة فى عالم فلوكود


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

شكرا جزيلا لك

بارك الله فيك

المرجع وامثلة على الموجة الجيبية عل الرابط


http://www.matrixmultimedia.com/article.php?a=50


وإن شاء الله سوف يكون لنا لقاء آخر


مع تمنياتى بدوام التوفيق


الصورة الرمزية noornader
noornader
:: عضو ذهبي ::
تاريخ التسجيل: Mar 2007
المشاركات: 608
نشاط [ noornader ]
قوة السمعة:97
قديم 06-06-2011, 06:12 PM المشاركة 7   
افتراضي


اخى الكريم

شكرا جزيلا لك

بارك الله فيك

المرجع وامثلة على الموجة الجيبية عل الرابط


http://www.matrixmultimedia.com/article.php?a=50


وإن شاء الله سوف يكون لنا لقاء آخر


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

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


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

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025