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

   

Shams-Dimashki
:: مهندس ::
تاريخ التسجيل: Mar 2016
المشاركات: 6
نشاط [ Shams-Dimashki ]
قوة السمعة:
قديم 19-03-2016, 09:09 PM المشاركة 9   
افتراضي



ملاحظة: توصيل المذبذب RC في الدائرة خاطئ
التوصيل الصحيح كما في الداتا شيت للمتحكم:
http://ww1.microchip.com/downloads/e...Doc/35007C.pdf
page 23
FIGURE 6-3: RC OSCILLATOR MODE
نعم , هو خطأ بالرسم فقط
ولكن التوصيل صحيح
هل من الممكن أن يكون العنوان 0 في الذاكرة محجوز لعمل معين في المعالج مثلا ؟

اعلانات

ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 450
نشاط [ ahmed idris ]
قوة السمعة:
قديم 19-03-2016, 11:04 PM المشاركة 10   
افتراضي


نعم , هو خطأ بالرسم فقط
ولكن التوصيل صحيح
هل من الممكن أن يكون العنوان 0 في الذاكرة محجوز لعمل معين في المعالج مثلا ؟
لا .. فقط في أول تشغيل للبيك سيكون العدد المخزن في الذاكرة عشوائي
لكن بعد ذلك ستخزن الذاكرة في العنوان 0 و بعد تنفيذ أمر الكتابة، العدد الذي تم تسجيله على PORTB
من ناحية ثانية البعض يضيف زمن تأخير بسيط 20 ميللي تانية بعد أمر الكتابة لضمان التخزين والقراءة
وأخيرا هناك ملاحظة ربما لا علاقة لها بالمشكل الحالي :
في الكود المرفق وضعت أمر الكتابة داخل حلقة تنفذ باستمرار طالما البيك موصول بالتغذية.
فقط للتذكير: عدد مرات الكتابة على هذه الذاكرة مهما كان كبيرا فهو محدود:تقريبا 10000000مرة.

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

Shams-Dimashki
:: مهندس ::
تاريخ التسجيل: Mar 2016
المشاركات: 6
نشاط [ Shams-Dimashki ]
قوة السمعة:
قديم 20-03-2016, 10:56 AM المشاركة 11   
افتراضي


لا .. فقط في أول تشغيل للبيك سيكون العدد المخزن في الذاكرة عشوائي
لكن بعد ذلك ستخزن الذاكرة في العنوان 0 و بعد تنفيذ أمر الكتابة، العدد الذي تم تسجيله على PORTB
من ناحية ثانية البعض يضيف زمن تأخير بسيط 20 ميللي تانية بعد أمر الكتابة لضمان التخزين والقراءة
وأخيرا هناك ملاحظة ربما لا علاقة لها بالمشكل الحالي :
في الكود المرفق وضعت أمر الكتابة داخل حلقة تنفذ باستمرار طالما البيك موصول بالتغذية.
فقط للتذكير: عدد مرات الكتابة على هذه الذاكرة مهما كان كبيرا فهو محدود:تقريبا 10000000مرة.
نعم قمت بإضافة التأخير ولكن للأسف نفس المشكلة
وللخروج من الملاحظة التي ذكرتها , قمت بجعل عملية الكتابة ضمن تعليمة if
لتجنب تكرار عملية التخزين لعدد كبير جدا في الذاكرة كما يلي :
كود:
if (porta.f0==0)
                    {
                         if (portb.f0 !=1 || portb.f1 !=1 || portb.f2 !=1 || portb.f3 !=1)
                            {delay_ms(200); portb++;
                            eeprom_write(0,portb);
                            delay_ms(25);
                            }

                     }
                  if (porta.f1==0)
                     {
                          if (portb.f0 !=0 || portb.f1 !=0 || portb.f2 !=0 || portb.f3 !=0)
                              {delay_ms(200); portb--;
                              eeprom_write(0,portb);
                              delay_ms(25);
                              }

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



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