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

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

الصورة الرمزية 5282
5282
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: مصر- الاسكندرية
المشاركات: 1,630
نشاط [ 5282 ]
قوة السمعة:112
قديم 02-02-2010, 10:40 PM المشاركة 1   
ha ارجو النصيحة Twitter FaceBook Google+



اريد ارسال 512 بيت (مصفوفة ) من الكمبيوتر وارسالة الى الميكرو ويقوم الميكرو بتخزين المصفوفة داخل ذاكرتة الداخلية eeprom

سأستخدم 12 طرف من lpt

8 متصلين بالميكرو لأرسال البيانات و اربعة اطراف للتحكم وماشابة

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

فكرت ان اعتمد على ساس وقت بمعنى مثلا كل 50 ميللى الكمبيوتر يرسل بايت ولكن اخشى ان يحدث خلل فى التوقيت فيسجل نفس البايت مرتين ويظن الميكرو انة البايت التالى

ارجو النصيحة وما افضل الطرق او الوسائل سواء المقترحة او التى تستخدم فعليا

وشكرااااااااااااااااااااااااااااااا

اعلانات

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 12,214
نشاط [ ماجد عباس محمد ]
قوة السمعة:409
قديم 03-02-2010, 04:17 AM المشاركة 2   
افتراضي


اخى
اقرأ الداتا شيت للميكرو الذى تريده فهناك عادة برتوكول للبرمجة و التحقق
Program, verification و عادة خطوات البرمجة تكون طريقة من طريقتين

أولا الطريقة خارج البوردة وضع عنوان ثم الأمر ثم التنفيذ
ثانيا داخل البوردة وهى تعتمد على عائلة الميكرو ورقمة وتجدها فى Data sheet

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

الصورة الرمزية 5282
5282
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: مصر- الاسكندرية
المشاركات: 1,630
نشاط [ 5282 ]
قوة السمعة:112
قديم 03-02-2010, 11:06 AM المشاركة 3   
Thumbs up


شكرااا استاذ ماجد عباس اقتراحك هو افضل حل

افضل من استخدام كود مخصوص داخل الميكرو ليقوم بأستقبال البيانات من الكمبيوتر وحدوث اخطاء فى الارسال والاستقبال.........


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 03-02-2010, 05:02 PM المشاركة 4   
افتراضي


اريد ارسال 512 بيت (مصفوفة ) من الكمبيوتر وارسالة الى الميكرو ويقوم الميكرو بتخزين المصفوفة داخل ذاكرتة الداخلية eeprom

سأستخدم 12 طرف من lpt

8 متصلين بالميكرو لأرسال البيانات و اربعة اطراف للتحكم وماشابة

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

فكرت ان اعتمد على ساس وقت بمعنى مثلا كل 50 ميللى الكمبيوتر يرسل بايت ولكن اخشى ان يحدث خلل فى التوقيت فيسجل نفس البايت مرتين ويظن الميكرو انة البايت التالى

ارجو النصيحة وما افضل الطرق او الوسائل سواء المقترحة او التى تستخدم فعليا

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

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

ملحوظة : خمسين ملي زمن كبير جدا .
-------------------

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

--------------------
كل هذه أفكار وهناك الكثير ... يمكنك أن تحاول وتجرب وتضع الكود ليتم النقاش فيه .
تمنياتي بمزيد من التوفيق .

رزقنا الله وإياكم العلم النافع والعمل الصالح .


الصورة الرمزية 5282
5282
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: مصر- الاسكندرية
المشاركات: 1,630
نشاط [ 5282 ]
قوة السمعة:112
قديم 03-02-2010, 05:10 PM المشاركة 5   
Talking


ربنا يكرمك يا باش مهندس احمد سمير على هذا الكلام الرائع والجميل

وعجبتنى فكرة ارسال بايت كلة اصفار الى الميكرو قبل ارسال البايت التالى

وشكراااااااا على المادخلة والاقتراحات الجميلة


الصورة الرمزية ahmad_s_f
ahmad_s_f
:: المهندس/ أحمد سمير فايد ::
تاريخ التسجيل: Jun 2006
الدولة: سائح في ارض الله
المشاركات: 725
نشاط [ ahmad_s_f ]
قوة السمعة:80
قديم 03-02-2010, 05:10 PM المشاركة 6   
افتراضي


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

إضافة رد

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

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

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


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

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