السلام عليكم
بعد أن عرفنا طريقة رسم الموجة التى يقرأها البيك سواء كانت مربعة أم جيبية أم سن منشار أو هرمية أو أي شكل أو حتى خط مستقيم
وعرفنا أن الرسم يتم عن طريق نقاط متتالية يكون موضعها على الشاشة فى إحداثية تمثل إرتفاعها أو إنخفاضها قيمة الفولتية لهذه النقطة ، أما بالنسبة للزمن فهو يكون ثابت بسرعة معلومة يتم ضبطها بواسطة المستخدم ،
رأينا أن المتحكم يقوم بقراءة الإشارة وكأنه يقرأ فولت أنالوج بطريقة عادية جدا ثم يقوم بتحويل القيمة الداخلة والتى تكون ما بين صفر و خمسة فولت كحد أقصى ، ثم نحول هذا الفولت إلى قيمة رقمية
كود:
tmp = tmp * 64 ; tmp = tmp >> 10 ;
حيث أن tmp هى متغير من نوع unsigned long
كى يحتوى على أكبر قدر من البتات ،
ثم نقوم بعد ذلك بضرب القيمة التى قرأها من دخل الإشارة وحولها لبتات رقمية فى الرقم 64 حيث أن 64 هو عدد صفوف الشاشة الأفقية والتى على أساسها سيكون ارتفاع النقطة أو انخفاضها بحسب الفولت ،
ونرى الحلقة التكرارية فى البرنامج والتى تعمل على اعطاء النقطة رقم عمود من أعمدة الشاشة الـ 128 رقم جديد حتى يتم عمل مسح كامل أى رسم بكامل صفحة الشاشة يشكل لنا الموجة الداخلة للبيك !
نستطيع أن نؤخر عملية الرسم أو نثبتها ولكن يبقى السؤال كيف نقوم بتسريع الرسم ؟ وهذا أهم ما فى الموضوع وبناءا عليه تزداد أهمية جهاز راسم الموجات لأنه كلما زادت قدرته على الرسم بسرعة أعلى يستطيع أن يرسم الموجات الأعلى ترددا ، وإلا فسيكون مقتصرا على الموجات الأقل ترددا .
يتوقف هذا على سرعة المتحكم ، وعلى سير البرنامج ووضع الأكواد ،
فيمكننا زيادة تردد الكريستالة بما يتناسب مع المتحكم كى تزداد سرعة المتحكم فى الأداء ،
ثانيا سير البرنامج يمكننا أن نكتب برنامجا كالذى كتبناه ولكن نلاحظ أننا كتبنا برنامج يستقبل الفولت ويقوم بضربه فى 64 ثم ازاحة 10 بتات ثم أخذ الناتج ووضعه فى احداثية النقطة لإظهارها على الشاشة ثم العودة من جديد !
أليست كل هذه الخطوات تستهلك من الزمن ؟
ما رأيكم بعمل حلقة تكرارية لما سبق وتخزين الناتج النهائى الذى يمثل إحداثية النقطة فى متغير دون عرضه وبعد انتهاء الحلقة التكرارية التى تشمل 128 تكرار بعدد أعمدة الشاشة نقوم فى النهاية بعمل حلقة تكرارية خاصة بعملية العرض من المتغيرات المسجلة ؟
هكذا :-
كود:
for ( Xx=0; Xx<128; Xx++)
{
tmp = ADC_Read(0); tmp = tmp * 64 ; tmp = tmp >> 10 ;
Var[xx] = tmp;
}
وبذلك نكون وفرنا زمن الرسم على الشاشة لصالح سرعة القراءة من الإشارة !!
بعدما قمت بهذه الجزئية وجدت أننى استطعت التعامل مع إشارة أكبر ترددا من السابقة ،
ثم سررت بما تم وأخذت أفكر فى كيفية زيادة السرعة أكثر حتى وصلت لطريقة أكثر سرعة
ونتناولها فى الحلقة القادمة
فليس الهدف طرح مشروع جاهز ولكن الهدف هو التنمية والإبتكار وهذا ما نتمناه
وفى نهاية الموضوع سأرفع لكم إن شاء الله مشروع متكامل مع ملفات اللوحات المطبوعة لشاشة 240*128 ليستفيد منه الجميع
ولكن نفكر فى زيادة السرعة أكثر من هذه الحلقة
فاصل ونواصل
|
السلام عليكم ورحمة الله وبركاته كيف حالك مهندس وليد
انا جربت الطريقة الثانية التي طرحتها ولكن لم يظهر اي شي على الشاشة!!
هذا هو الكود بعد التعديل:
http://upload.qariya.info/images/qar...b6413a258b.png