ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





صفحه 2 از 2 نخست 12
  1. #11
    تاریخ عضویت
    2016/10/17
    12
    1

    پاسخ : مشکل در نحوه ی تاخیر در Atmel Studio با تابع Delay

    ممنون از توضیحاتتون، حالا اگر بخوام از timer استفاده کنم و یه تابع بنویسم که هرجا بخوام فراخوانی کنم، برای مثال Timer 0 از ATMEGA8 ،و هدف این باشه که بعد از دریافت ورودی از کلید تایمر فعال بشه و 50 میلی ثانیه صبر کنه ، برای چه تعداد کلید میتونم از Timer 0 استفاده کنم، البته اینو در نظر بگیرید که کلید ها هم زمان با هم فعال بشن
    نظرتون چیه؟

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    نقل قول نوشته اصلی توسط sadra98

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    لطفا همین برنامه رو با مقدار i=0 در ابتدای حلقه for جایگزین کنید. for (i=0;i<=50000;i=i*2)
    دوست عزیز اگر بخوام مقدار رو از اول 0 در نظر بگیرم که زمان بالا نمیره اصلا، چون قراره در عدد 2 ضرب کنه و همیشه زمان صفرمیمونه ، و خروجی مدام با سرعت بالایی 0 و 1 میشه
    درسته؟ اگر هم بخوام جمع کنم و ضرب نکنم میشه 0 گذاشت ولی تغییر زمان خیلی دیر خودشو نشون میده
    ویرایش توسط علی محمد شریفی : 2022/06/24 در ساعت 00:13
  2. #12
    تاریخ عضویت
    2017/06/13
    1,392
    867

    پاسخ : مشکل در نحوه ی تاخیر در Atmel Studio با تابع Delay

    نقل قول نوشته اصلی توسط علی محمد شریفی

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ممنون از توضیحاتتون، حالا اگر بخوام از timer استفاده کنم و یه تابع بنویسم که هرجا بخوام فراخوانی کنم، برای مثال Timer 0 از ATMEGA8 ،و هدف این باشه که بعد از دریافت ورودی از کلید تایمر فعال بشه و 50 میلی ثانیه صبر کنه ، برای چه تعداد کلید میتونم از Timer 0 استفاده کنم، البته اینو در نظر بگیرید که کلید ها هم زمان با هم فعال بشن
    نظرتون چیه؟
    باید کامل بگید قراره با کلیدها چکار کنید تا بشه راهنمایی دقیق کرد.
    ببنید میکروکنترلر شما که در لحظه یک کار بیشتر نمیتونه بکنه چون یک CPU بیشتر نداره. با روش تاخیر معمول، هرجا از تاخیر استفاده کنید، عملا CPU زمان تاخیر رو بیکار میمونه تا زمان بگذره. اگر با تایمر، چیزی مشابه همون تابع تاخیر معمول رو پیاده کنید، عملا رفتارش شبیه به همون رفتار تابع تاخیر خواهد بود با دقت بهتر. اما با استفاده از ویژگی وقفه تایمر میشه کارهای ابتکاری بهتری کرد. اگر در مورد تایمر و وقفه اطلاعاتی ندارید، بهتره در موردش تحقیق کنید؛ چیزی نیست که بشه توی چند جمله راحت توصیفش کرد.
  3. #13
    تاریخ عضویت
    2022/05/14
    600
    1,029

    پاسخ : مشکل در نحوه ی تاخیر در Atmel Studio با تابع Delay

    استاددر تکمیل فرمایشات شما :
    تایمر و وقفه اش برای این استفاده میشه که سی پی یو بر خلاف تابع دیلی در حالت استوپ قرار نگیره و روند عادی کارش رو ادامه بده .

    اینتراپت اورفلو تایمر باندازه یک یا نهایتا چند سیکل ( بستگی به دستورات در روتین وقفه داره ) سی پی یو رو به زیر برنامه وقفه میبره برای مثال موضوع بحث تاگل کردن کردن یک پایه از یک پورت خروجیه .
    زیر برنامه اینتراپت عملا میشه portx.x = not portx.x که میشه همون سیستم چشمک زن ( این کد ۱ سیکل ماشین زمان میبره )
    از دید عملکرد سی پی یو در حالت آزاد قرار داره ( یا در حال انجام پردازش و کارهای دیگه است یا استندبای مونده یا اصلا روی مدهای کاری کم مصرف رفته )
    هر بار اینتراپت فوق رخ میده سی پی یو روند کار جاری رو رها میکنه ( پروگرام کانتر رو استک میکنه ) میاد پورت رو تاگل میکنه برمیگرده ادامه کارش که استک شده بود رو انجام میده تا وقفه بعدی و تکرار روند فوق .

    در میکروهایی مثل avrکه محدودیت تعداد تایمر و exti دارن با همون تک ایونت تایمر اورفلو میشه از نظر تئوریک هر تعداد تایمر دیگه رو با تعریف متغیر عمومی و inc(x) تعداد نسبتا نامحدودی تایمر نرم افزاری با ریلود سایکل دلخواه هم در روتین اینتراپت تایمر اضافه کرد

    یا بصورت مشابه یک منبع exti رو با سیستم دیودی به مجموعه ای از کلیدها متصل کرد ... با همین تک اینتراپت کل کلیدها رو سرویس با وقفه داد ( زیر برنامه اینتراپت خارجی چک میکنه کدوم پین یا مجموعه پینها گرند شده یا بالعکس با مجموعه تایمرهای نرم افزاری از زمان اکتیو بودن کلیدها دیبانس گیری و خیلی کارهای دیگه کرد )

    برنامه نویسی میکرو همونطور که دوستمون گفتن تیریکهای خاص خودش رو داره که اگر با طریقه اصولی برنامه نویسی و امکانات سخت افزاری ، نرم افزاری اون آرشیکتکتور آشنا نباشید با قویترین پردازنده ها در اجرای ساده ترین کارها منابع سیستمی فقط هدر میرن .
    ویرایش توسط Amie.s.m : 2022/06/24 در ساعت 07:15
  4. #14
    تاریخ عضویت
    2016/10/17
    12
    1

    پاسخ : مشکل در نحوه ی تاخیر در Atmel Studio با تابع Delay

    نقل قول نوشته اصلی توسط hossein.m98

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    باید کامل بگید قراره با کلیدها چکار کنید تا بشه راهنمایی دقیق کرد.
    ببنید میکروکنترلر شما که در لحظه یک کار بیشتر نمیتونه بکنه چون یک CPU بیشتر نداره. با روش تاخیر معمول، هرجا از تاخیر استفاده کنید، عملا CPU زمان تاخیر رو بیکار میمونه تا زمان بگذره. اگر با تایمر، چیزی مشابه همون تابع تاخیر معمول رو پیاده کنید، عملا رفتارش شبیه به همون رفتار تابع تاخیر خواهد بود با دقت بهتر. اما با استفاده از ویژگی وقفه تایمر میشه کارهای ابتکاری بهتری کرد. اگر در مورد تایمر و وقفه اطلاعاتی ندارید، بهتره در موردش تحقیق کنید؛ چیزی نیست که بشه توی چند جمله راحت توصیفش کرد.
    من متوجه میشم چی فرمودید، قبلا کار کردم ، ولی نمیخوام تو محیط کد ویژن باشم، رفتم سمت Atmel Studio چون کد ویزارد نداره یکم سختمه دستی وارد کنم .ولی سختی شو به جون خریدم.
    در توضیحات بالا :
    فکر کنید اصلا این کلید ها میتونن جای کلید یا هر سنسوری قرار بگیرن، میخوام بعد از دادن ورودی یا 1 شدن 50 میلی ثانیه صبر کنه بعد هر کدام یکی از پایه های دلخواه رو Toggle کنن، حالا میخوام بدونم برای Timer0 و قضیه
    سرریز شدن برای چه تعداد کلید میتونم از Timer 0 استفاده کنم .نمیخوام هیچ تداخلی و وقفه ای از نظر زمانی در هیچ جای برنامه داشته باشم به این دلیل میخوام از تایمر استفاده کنم و اون 50ms و تعداد کلیدی که میشه ساپورتشون کرد مهمه، همین

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    نقل قول نوشته اصلی توسط Amie.s.m

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    استاددر تکمیل فرمایشات شما :
    تایمر و وقفه اش برای این استفاده میشه که سی پی یو بر خلاف تابع دیلی در حالت استوپ قرار نگیره و روند عادی کارش رو ادامه بده .

    اینتراپت اورفلو تایمر باندازه یک یا نهایتا چند سیکل ( بستگی به دستورات در روتین وقفه داره ) سی پی یو رو به زیر برنامه وقفه میبره برای مثال موضوع بحث تاگل کردن کردن یک پایه از یک پورت خروجیه .
    زیر برنامه اینتراپت عملا میشه portx.x = not portx.x که میشه همون سیستم چشمک زن ( این کد ۱ سیکل ماشین زمان میبره )
    از دید عملکرد سی پی یو در حالت آزاد قرار داره ( یا در حال انجام پردازش و کارهای دیگه است یا استندبای مونده یا اصلا روی مدهای کاری کم مصرف رفته )
    هر بار اینتراپت فوق رخ میده سی پی یو روند کار جاری رو رها میکنه ( پروگرام کانتر رو استک میکنه ) میاد پورت رو تاگل میکنه برمیگرده ادامه کارش که استک شده بود رو انجام میده تا وقفه بعدی و تکرار روند فوق .

    در میکروهایی مثل avrکه محدودیت تعداد تایمر و exti دارن با همون تک ایونت تایمر اورفلو میشه از نظر تئوریک هر تعداد تایمر دیگه رو با تعریف متغیر عمومی و inc(x) تعداد نسبتا نامحدودی تایمر نرم افزاری با ریلود سایکل دلخواه هم در روتین اینتراپت تایمر اضافه کرد

    یا بصورت مشابه یک منبع exti رو با سیستم دیودی به مجموعه ای از کلیدها متصل کرد ... با همین تک اینتراپت کل کلیدها رو سرویس با وقفه داد ( زیر برنامه اینتراپت خارجی چک میکنه کدوم پین یا مجموعه پینها گرند شده یا بالعکس با مجموعه تایمرهای نرم افزاری از زمان اکتیو بودن کلیدها دیبانس گیری و خیلی کارهای دیگه کرد )

    برنامه نویسی میکرو همونطور که دوستمون گفتن تیریکهای خاص خودش رو داره که اگر با طریقه اصولی برنامه نویسی و امکانات سخت افزاری ، نرم افزاری اون آرشیکتکتور آشنا نباشید با قویترین پردازنده ها در اجرای ساده ترین کارها منابع سیستمی فقط هدر میرن .
    میشه در این مورد یک برنامه یا مثالی بیارید ؟
    چطور این تابع رو تو محیط اتمل استادیو بنویسم تا هر موقع بخوام استفاده کنم با توجه به توضیحات قبلی در بالا
  5. #15
    تاریخ عضویت
    2017/06/13
    1,392
    867

    پاسخ : مشکل در نحوه ی تاخیر در Atmel Studio با تابع Delay

    نقل قول نوشته اصلی توسط علی محمد شریفی

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    من متوجه میشم چی فرمودید، قبلا کار کردم ، ولی نمیخوام تو محیط کد ویژن باشم، رفتم سمت Atmel Studio چون کد ویزارد نداره یکم سختمه دستی وارد کنم .ولی سختی شو به جون خریدم.
    در توضیحات بالا :
    فکر کنید اصلا این کلید ها میتونن جای کلید یا هر سنسوری قرار بگیرن، میخوام بعد از دادن ورودی یا 1 شدن 50 میلی ثانیه صبر کنه بعد هر کدام یکی از پایه های دلخواه رو Toggle کنن، حالا میخوام بدونم برای Timer0 و قضیه
    سرریز شدن برای چه تعداد کلید میتونم از Timer 0 استفاده کنم .نمیخوام هیچ تداخلی و وقفه ای از نظر زمانی در هیچ جای برنامه داشته باشم به این دلیل میخوام از تایمر استفاده کنم و اون 50ms و تعداد کلیدی که میشه ساپورتشون کرد مهمه، همین
    فرقی نداره توی چه محیطی باشید. تنها فرق توی جزئیاتی مثل تعریف زیر روال وقفه و این مسائل حاشیه ای هستش. اگر کاری رو توی کدویژن میتونید انجام بدید، اینجا هم باید بتونید. در مورد محدودیت هم همه چیز به برنامه نویسی خود شما بر میگرده! این خود شمایید که در نهایت باید تصمیم بگیرید با توجه به پیچیدگی برنامه، کدوم روش بهتره.
    برای مثال شما یک تایمر رو میتونید تنظیم کنید که فقط یک متغیر تایم گلوبال رو با فرکانس خاصی زیاد کنه و بقیه قسمت های برنامه رو با توجه به اون مقدار اون متغیر سنکرون کنید. فرض که متغیر گفته شده هر میلی ثانیه یک واحد زیاد بشه؛ هر موقع کلید زده شد، مقدار متغیر تایمر رو بررسی میکنید و هدف رو روی این قرار میدید که اگر مقدار متغیر ۵۰ تا بیشتر شد خروجی فعال بشه. از این کلیدها میتونید به تعداد زیاد در نظر بگیرید که کارکردشون با هم تداخل هم نداره؛ فقط هر کدوم احتیاج به چندتایی متغیر برای ذخیره وضعیت و تایم دارن.
  6. #16
    تاریخ عضویت
    2022/05/14
    600
    1,029

    پاسخ : مشکل در نحوه ی تاخیر در Atmel Studio با تابع Delay

    خدمت شما:
    این تنظیمات و ست آپ اینتراپت اکسترنال

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    این برای ست کردن و استفاده از اینتراپت تایمر

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    از منوی سمت چپ بقیه پریفرالها و نمونه کد ( برای انواع رایج میکرو ) رو میتونید استفاده کنید .

    قبل از تمام این کارها یکی دو جلد کتاب برای کسب اطلاعات پایه روی میکروی مدنظر رو باید خونده باشید ، اپلیکیشن منوال هم که دائم نیازه

    موفق باشید
    ویرایش توسط Amie.s.m : 2022/06/24 در ساعت 14:58
صفحه 2 از 2 نخست 12
نمایش نتایج: از 11 به 16 از 16

موضوعات مشابه

  1. مشکل با تابع delay
    توسط electronet در انجمن XMEGA
    پاسخ: 3
    آخرين نوشته: 2017/09/10, 16:27
  2. مشکل با تابع delay در کدویژن
    توسط AhmadMan در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2017/07/02, 12:55
  3. مشکل در Atmel Studio
    توسط Saeed-Omnia در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2014/05/08, 15:17
  4. استفاده از متغییر برای توابع تاخیر در Atmel Studio
    توسط mjs1990s در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2013/02/03, 12:11
  5. مشکل با نوشتن تابع delay
    توسط mohpooria در انجمن پروسسورهای ARM
    پاسخ: 20
    آخرين نوشته: 2011/02/03, 14:12

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •