|
في انتظار ردكم وابداعاتكم يا اهل القريه ..
|
سلام عليكم
اخي كريم ان شالله وضحت الامور وراح أكتب الكود بخصوص هذا الموضوع
وسأشرح ما أفتهمته ولعل هناك أحد ما يريد أضافة شيئ او تصحيح الامر
الموضوع :
عند الارسال لابد ان ترسل 5 بيانات وهي تمثل الاوامر التي على اساسها سوف يكتب الكود ماهي هذه البيانات
STX Parameter data(2Bytes) check
SBUF0 SBUF1 SBUF2 SBUF3 SBUF4
SBUF0 =02 ويعني اشارة البدء
SBUF1 وهي تمثل Parameter وهي مجموعة من الثوابت وهذه هي
00H no use(reserved)
01H laser range finder measure instruction
10H laser range finder measured distance and the distance is effective
11H laser range finder can’t measure distance
00 تعني غير مستخدم
01 تعني اعطاء امر بقياس
وهنا يرجع لك امرين اما
10 وهنا يخبرك انه تم القياس ونتيجه مخزونة في data
واما
11 هنا يخبرك تعذر القياس او خارج نطاق او انه لايمكنه القياس اي خارج المدى
============================================
SBUF2 SBUF3
وهما مخزونه فيهما البيانات ومن خلالها نحصل على مسافة
SBUF4 وتمثل check وحاليا لاأفهم عملها
لتوضيح الامر كما مذكور في مثال
For example:
To send the instruction of measurement to the laser range finder, you need to send a data frame as follows.
02H, 01H, 00H, 00H, 03H
If the laser range finder measured the distance is 500M, so the laser range finder send back a data frame as follows:
02H, 10H, 01H, F4H, E7H
If the laser range finder can’t measure the distance, than it will send back a data frame as follows:
02H, 11H, 00H, 00H, 13H
هنا تم ارسال هذه البيانات
02H, 01H, 00H, 00H, 03H
كما قلنا 02H يعني أبد ء 01H اعطاء أمر بقياس
00H, 00H تمثل البيانات وهي 0 ولاتهمنا الان
ماهي النتيجة المستقبلة افترض هو بالمثال ان مسافة متوقعة =500 متر
وهذه هي النتيجة
02H, 10H, 01H, F4H, E7H
10H يعني تم قياس بنجاح
01H, F4H وهذه تمثل البيانات وهي =500 متر
ملاحظة لو حولت 500 الى نظام سادس عشر لحصلت على 01f4
E7H وتمثل check حاليا لاعرف ماذا يقصد بها
عموما عرفنا الان كيف ترسل البيانات وكيف يتم أستقبالها ولانحتاج الى معادلات فهو يحسبها بشكل كامل ولكن بنظام سادس عشر
وهنا سؤالي الى الاخوة كيف أحول الرقم بنظام سادس عشر الى نظام عشري