اطلاعیه

Collapse
No announcement yet.

اسمبلی و تاخیر AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    اسمبلی و تاخیر AVR

    باسلام خدمت دوستان
    چگونه با اسمبلی و فقط با استفاده از تاخیر و نه تایمر میتونم همه فرکانس های از 100 تا 999 هرتز و,.D.C از 0 تا 99 درصد رو ایجاد کنم . اگر ممکنه راهنمایی کنید ممنون

    #2
    پاسخ : اسمبلی و تاخیر AVR

    نوشته اصلی توسط javad140440 نمایش پست ها
    باسلام خدمت دوستان
    چگونه با اسمبلی و فقط با استفاده از تاخیر و نه تایمر میتونم همه فرکانس های از 100 تا 999 هرتز و,.D.C از 0 تا 99 درصد رو ایجاد کنم . اگر ممکنه راهنمایی کنید ممنون
    با nop. البته خود کتابخونه delay که بصورت پیشفرض با avr-libc ارایه میشه با همین دستور تاخیر ایجاد میکنه. یعنی اسمبلیه اونم.
    با توجه به کلاک میکرو، حساب میکنید چند تا nop لازم دارید. هر nop یک سایکل تلف میکنه. ولی باید حساب دستورات دسترسی به حافظه و پایپلاین رو بکشید. اگر فقط از nop استفاده کنید، واقعا یه کلاک تلف میشه بطور متوسط. بجز اولی که بستگی به وضعیت پایپلاین داره. ولی اگر بخواید یه تابع بنویسید که به یه اندازه داده شده nop استفاده کنه، اون موقه کمی حساب کتابا فرق میکنه.
    نتیجه اینکه " اگر به هر ترتیبی و به اجبار مجبورید به اسمبلی بنویسید" برید سراغ این روش. تو نت زیاد هست. و فکر نکنید که حتما کدتون بهینه تر از کد سی خواهد بود. ممکنه باشه ممکنه نباشه.

    ساختار درست کردن pwm نرم افزاری هم اینطوره :
    کد:
    [COLOR=#333333][FONT=Consolas][COLOR=#859900]for[/COLOR][COLOR=#333333](i[/COLOR][COLOR=#859900]=[/COLOR][COLOR=#d33682]0[/COLOR][COLOR=#333333]; i[/COLOR][COLOR=#859900]<[/COLOR][COLOR=#d33682]100[/COLOR][COLOR=#333333]; i[/COLOR][COLOR=#859900]++[/COLOR][COLOR=#333333])[/COLOR]
    [COLOR=#333333]{[/COLOR]
    [COLOR=#859900]if[/COLOR][COLOR=#333333](i [/COLOR][COLOR=#859900]==[/COLOR][COLOR=#d33682]75[/COLOR][COLOR=#333333]) LED_ON;[/COLOR]
    [COLOR=#268bd2]delay_us[/COLOR][COLOR=#333333]([/COLOR][COLOR=#d33682]1[/COLOR][COLOR=#333333]);[/COLOR]
    [COLOR=#333333]}[/COLOR][/FONT][/COLOR]
    الان طول موج کد بالا 100 میکروثانیه س و دیوتی سایکل هم 25 درصد
    جدیدترین ویرایش توسط tiranoid; ۰۲:۱۹ ۱۳۹۹/۰۱/۳۱.
    Si vis pacem, para bellum

    دیدگاه

    لطفا صبر کنید...
    X