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

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

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 19-09-2009, 01:24 AM المشاركة 81   
افتراضي



بسم الله الرحمن الرحيم

احيي أخي
geniusse01 على موضعه الأكثر من جميل ...

يوجد لدي سؤال بخصوص استخدام التايمر زيرو كعداد أو للتوقيت الحقيقي ، فأني وبعدما اطلعت على الموضوع لا أجد فرق فيما بينهما سوى أن استخدام التايمر كعداد بحيث يعد من الخارج واستخدامه كمؤقت يعني حساب النبضات من الكرستاله ، فهل هذا صحيح وما رأي الأخوة ؟

السؤال الثاني ، اذا كان يوجد للغة مايكروسي ومايكروبيسك أمر
Delay لماذا نستخدم التايمر كمؤقت ؟

السؤال الثالث ، ما هو كلب الحراسة وهل يمكن شرحة بكامل خواصه ...

طبعا بعد اذن الاخ فادى (الذى طالت غيبته نسال الله ان يكون بخير)
بالنسبة للسؤال الاول ماذكرته صحيح تماما.
اما السؤال الثانى
الامر delay يتم توليده باستخدام ال software وله عيبان :
1- عدم الدقة مقارنة بتوقيت timer0. 
2- المعالج يكون منشغل بتنفيذ الامر ولا يستطيع عمل اى شئ اخر اثناء فترة التاخير .
مثلا اذا كتبنا الامر التالى
(1000)delay_ms
فسينتظر المتحكم لمدة ثانية كاملة خلال هذه الثانية لن تسطيع تشغيل محرك او اطفاء ليد او عمل اى شى اخر.
فمثلا اذا طلب منك كتابة برنامج يقوم بعد السيارات التى تقطع اشارة معينة خلال 30 ثانية فستعجز عن تنفيذ هذا باستخدام الامر delay
اما باستخدام التايمر0 فالامر فى غاية السهولة

اما بالنسبة للاستفسار الثالث
ستجد ما تريد فى هذا الرابط ان شاء الله

شرح مختصر للwatchdog timer
ولله الحمد اولا واخرا

اعلانات

الصورة الرمزية ahmed-1a
ahmed-1a
:: مهندس جيد ::
تاريخ التسجيل: Apr 2008
المشاركات: 205
نشاط [ ahmed-1a ]
قوة السمعة:0
قديم 19-09-2009, 01:33 AM المشاركة 82   
افتراضي


طبعا بعد اذن الاخ فادى (الذى طالت غيبته نسال الله ان يكون بخير)
بالنسبة للسؤال الاول ماذكرته صحيح تماما.
اما السؤال الثانى
الامر delay يتم توليده باستخدام ال software وله عيبان :
1- عدم الدقة مقارنة بتوقيت timer0.
2- المعالج يكون منشغل بتنفيذ الامر ولا يستطيع عمل اى شئ اخر اثناء فترة التاخير .
مثلا اذا كتبنا الامر التالى
(1000)delay_ms
فسينتظر المتحكم لمدة ثانية كاملة خلال هذه الثانية لن تسطيع تشغيل محرك او اطفاء ليد او عمل اى شى اخر.
فمثلا اذا طلب منك كتابة برنامج يقوم بعد السيارات التى تقطع اشارة معينة خلال 30 ثانية فستعجز عن تنفيذ هذا باستخدام الامر delay
اما باستخدام التايمر0 فالامر فى غاية السهولة

اما بالنسبة للاستفسار الثالث
ستجد ما تريد فى هذا الرابط ان شاء الله

شرح مختصر للwatchdog timer
ولله الحمد اولا واخرا
بارك الله فيك أخي robota ، كفيت ووفيت ، كل عام وانت بخير

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

robota
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: الخرطوم_السودان
المشاركات: 926
نشاط [ robota ]
قوة السمعة:103
قديم 19-09-2009, 01:56 AM المشاركة 83   
افتراضي


وفيك بارك اخى احمد
وكل عام والجميع بخير


wagdy11
:: مهندس ::
تاريخ التسجيل: Oct 2009
المشاركات: 4
نشاط [ wagdy11 ]
قوة السمعة:0
قديم 02-10-2009, 07:39 PM المشاركة 84   
افتراضي



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


الصورة الرمزية wleed antar
wleed antar
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: القاهرة - مصر
المشاركات: 1,524
نشاط [ wleed antar ]
قوة السمعة:146
قديم 02-10-2009, 07:59 PM المشاركة 85   
افتراضي


بارك الله فيك مهندس فادى، وجزاك الله خيرا

وبارك الله فى جميع من شارك فى هذا الموضوع

وزادكم علما من علمه الواسع


mizo2004
:: مهندس متميز ::
تاريخ التسجيل: Jul 2004
المشاركات: 672
نشاط [ mizo2004 ]
قوة السمعة:0
قديم 03-10-2009, 06:13 PM المشاركة 86   
افتراضي


السلام عليكم ورحمه الله وبركاته

شكرا جزيلا اخونا الكريم فادى اسال الله العظيم ان يبارك لك فى علمك

ممكن شرح كود المقاطعه فى عذا البرنامج
كود:
كود:
#include "C:\Program Files\Mikroelektronika\mikroC\Examples\EasyPic4\extra_examples\HID-library\USBdsc.c"

unsigned char Read_buffer[64];
unsigned char Write_buffer[64];
unsigned char num;
unsigned short k;
//
// Timer interrupt service routine
//
void interrupt()
{
  HID_InterruptProc();                  // Keep alive
  TMR0L = 100;                          // Re-load TMR0L
  INTCON.TMR0IF = 0;                    // Re-enable TMR0 interrupts
}


//
// Start of MAIN program
//
void main()
{

     ADCON1 = 0xFF;                      // Set PORT D to digital I/O
     TRISD = 0;                          // Set PORT D to outputs
     PORTD = 0;                          // Clear all outputs
//
// Set interrupt registers to power-on defaults
// Disable all interrupts
//
     INTCON=0;
     INTCON2=0xF5;
     INTCON3=0xC0;
     RCON.IPEN=0;
     PIE1=0;
     PIE2=0;
     PIR1=0;
     PIR2=0;
//
// Configure TIMER 0 for 3.3ms interrupts. Set prescaler to 256
// and load TMR0L to 100 so that the time interval for timer
// interrupts at 48MHz is 256*(256-100)*0.083 = 3.3ms
//
// The timer is in 8-bit mode by default
//
  T0CON  = 0x47;                         // Prescaler = 256
  TMR0L  = 100;                          // Timer count is 256-156 = 100
  INTCON.TMR0IE = 1;                     // Enable T0IE
  T0CON.TMR0ON = 1;                      // Turn Timer 0 ON
  INTCON = 0xE0;                         // Enable interrupts

//
// Enable USB port
//
   Hid_Enable(&Read_buffer, &Write_buffer);
   Delay_ms(1000);
   Delay_ms(1000);
//
// Read from the USB port. Number of bytes read is in num
//

   for(;;)                               // do forever
{
      num=0;
      while(num != 1)                    // Get 4 characters
      {
      num = Hid_Read();
      }
      if(Read_buffer[0] == 'P')
      {
            PORTD = ~PORTD;

       //      for (k = 0; k <255; k++) {
    // Prepare send buffer
   //  Write_buffer[0] = k;

      // Send the number via USB
     // Hid_Write(&Write_buffer, 1);
   }

      }

  Hid_Disable();

}
ياريت شرح مفصل لكود المقاطعه فى هذا البرنامج


الصورة الرمزية حيدر علاج حسن
حيدر علاج حسن
:: مشرف منتدى الهندسة الكهربائية ::
تاريخ التسجيل: Mar 2005
الدولة: IRAQ
المشاركات: 10,061
نشاط [ حيدر علاج حسن ]
قوة السمعة:395
قديم 21-01-2010, 08:56 PM المشاركة 87   
افتراضي


انقطعت الكهرباء وانا اطالع الموضوع . فاردته ان يكون قريب .
و كذلك ليستفيد منه من لم يراه من قبل .

حيدر علاج حسن

الصورة الرمزية moharaul1986
moharaul1986
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2009
المشاركات: 59
نشاط [ moharaul1986 ]
قوة السمعة:0
قديم 01-02-2010, 01:20 AM المشاركة 88   
افتراضي


بارك الله فيك اخي فادي وادعو الله ان يوفقك لما فيه خير لك في الدنيا والاخرة وانا بدي اعلق على سؤال الاخ عن الفرق في عمل التايمر كعداد او كمؤقت للزمن الحقيقي
1- عمله كعداد:نستخدمه في التطبيقات التي تحتاج الى جواب شرط عند حدوث عمل معين في البيئة الخارجية وبنستخدمه بكثرة في عمل الحساسات واخص بالذكر تلك التي تستخدم في المجالات الطبية
2- عمله كمؤقت للزمن الحقيقي :نستخدمه في التطبيقات التي يكون عنصر الزمن مهم جدا فيها ولا نستغني عن اي تاخير في الوقت مكالساعة الرقمية مثلا او انظمة التحكم التي تحتاج الى مزامنة مع بعضها البعض.
ارجو من الله ان اكون قد وفقت بالتعبير عما ارمي اليه بجوابي واسال الله ان يعلمنا بما ينفعنا وجزاك الله كل خير استاذ فادي

إضافة رد

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

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

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


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

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