انجمن های گفتگوی روبوایکیو

لطفا به سیستم وارد یا ثبت‌نام کنید.

لطفا برای ورود نام کاربری و رمز عبورتان را وارد نمایید

لطفا برای استفاده بهتر از انجمن، ثبت نام کنید!

نویسنده موضوع: عدم تطابق تاخیر در میکرو با مقدار مورد انتظار  (دفعات بازدید: 1466 بار)

0 کاربر و 1 مهمان درحال دیدن موضوع.

آفلاین وحید

  • کاربر جدید
  • *
  • ارسال: 16
  • امتیاز: 4
    • ديدن مشخصات
میخوام یه ال ای دی رو با زمان هشتاد ثانیه یک بار تی کدویژن روشن خاموش کنم برای مثال
;PORTD.1=1
;(delay_ms(80000
;PORTD.1=0
ولی توی پروتئوس پونزده ثانیه هستش اصلا اعصابمو خورد کرده لطفا جواب بدید به خاطر علم
« آخرين ويرايش: 18 شهریور, 1394, 08:19:34 توسط admin2 »
TESLA

آفلاین مسئول فنی

  • مدیر سایت
  • یه دنگ از سایت به نامشه
  • *****
  • ارسال: 1423
  • امتیاز: 634
    • ديدن مشخصات
فرکانس کاری میکرو با فرکانسی که برای میکرو در کد ویژن تعریف کرده اید متفاوت است
« آخرين ويرايش: 18 شهریور, 1394, 08:19:55 توسط admin2 »

آفلاین محمد پورخلیلی

  • یه دنگ از سایت به نامشه
  • *****
  • ارسال: 893
  • امتیاز: 627
    • ديدن مشخصات
    • سپهر تراشه پارس
نه بخاطر اینه متغییری که داخل تابع delay از نوع unsigned int هست و وقتی مقادیر بیشتر از 65536 بهش میدیم بیتهای با ارزش سرریز میکنن و فقط بیتهای کم ارزش باقی میمونن یعنی زمان دقیق تاخیر به 14464 میلی ثانیه یا 14.4 ثانیه تغییر میکنه.
چطور بپرسیم ؟    http://forum.roboeq.ir/index.php?topic=1902

آفلاین مسئول فنی

  • مدیر سایت
  • یه دنگ از سایت به نامشه
  • *****
  • ارسال: 1423
  • امتیاز: 634
    • ديدن مشخصات
نه بخاطر اینه متغییری که داخل تابع delay از نوع unsigned int هست و وقتی مقادیر بیشتر از 65536 بهش میدیم بیتهای با ارزش سرریز میکنن و فقط بیتهای کم ارزش باقی میمونن یعنی زمان دقیق تاخیر به 14464 میلی ثانیه یا 14.4 ثانیه تغییر میکنه.

بله، به عدد 80هزار توجه نکردم. برای رفع مشکل، از چند دستور تاخیر پشت سر هم با مقدار کمتر از 65535 یا 0xffff استفاده کنید.

آفلاین Masood.nv443

  • کاربر جدید
  • *
  • ارسال: 49
  • امتیاز: 37
    • ديدن مشخصات
پروتیوس تاخیرش زیاده اصلا با واقعیت یکی نیس این مشکل از برنامه شما نیس من خودم تاخیر 2 ثانیه میزنم هشت ثانیه حساب میکنه
تو خود میکرو هم کمی بیشتر از اون زمان میشه که اگه بخوای خیلی دقیق کار کنی باید بری سراغ rtc و تایمر و کانتر های میکرو

آفلاین مسئول فنی

  • مدیر سایت
  • یه دنگ از سایت به نامشه
  • *****
  • ارسال: 1423
  • امتیاز: 634
    • ديدن مشخصات
نقل‌قول
پروتیوس تاخیرش زیاده اصلا با واقعیت یکی نیس این مشکل از برنامه شما نیس من خودم تاخیر 2 ثانیه میزنم هشت ثانیه حساب میکنه

در اینکه شبیه سازی نرم افزاری مانند پروتئوس کاملا real time نیست شکی نیست اما این عدم تطبیق در حد اختلاف 2 تا 8 ثانیه نیست.
به نظر می رسد که اشکال ذکر شده به دلیل تعیین اشتباه فرکانس کاری میکرو در کامپایلر و یا برنامه ی پروتئوس باشد.

نقل‌قول
تو خود میکرو هم کمی بیشتر از اون زمان میشه که اگه بخوای خیلی دقیق کار کنی باید بری سراغ rtc و تایمر و کانتر های میکرو

در میکرو کنترلر هم زمان اجرای هر دستور اسمبلی کاملا مشخص است و در صورتی که با کد نویسی اسمبلی آشنایی داشته باشید می توانید زمان اجرای یک تابع یا یک دسته از دستورات را محاسبه کنید.


نکته مهم:

لطفا به هشدار سیستم توجه کنید و به سوالات قدیمی پاسخ ندهید. مخصوصا مواردی از این دست که قبلا به طور کامل پاسخ دهی شده است.
« آخرين ويرايش: 15 فروردین, 1395, 10:16:39 توسط Hesam Ahmadi »