اطلاعیه

Collapse
No announcement yet.

تنظیم کلاک

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

    تنظیم کلاک

    سلام دوستان،
    من تازه دارم با برنامه نویسی avr آشنا می شم، می خوام بدونم وقتی کلاک رو، روی 8mhz تنظیم می کنیم دقیقا یعنی چی؟ آیا یعنی اینکه برنامه توی یه سیکل تکرار می شه؟ اگه اینطوره مدتش چقدره و رو چه حسابی باید این کلاک رو تظیم کرد؟

    #2
    پاسخ : تنظیم کلاک

    ببخشید ، در واقع من یه برنامه کوچولو نوشتم و ریختم رو میکرو (attiny13a) که میاد 200 میلی ثانیه چراغ و روشن و 200 میلی ثانیه هم خاموشش می کنه و می خوام به صورت مساوی خاموش و روشن بشه ولی اصلا اینطوری نمی شه
    ظاهرا کلاکش باید mhz4.8 یا mhz9.6 باشه

    دیدگاه


      #3
      پاسخ : تنظیم کلاک

      عزیز جان ببین، اگر میکرو کلاک نداشته باشه عملا هیچ کاری نمیکنه و مثل "بز" نگات میکنه :nerd:
      پس کلاک لازمه کار میکرو هست. حالا فرکانس رو روی 8 مگ یا 4 مگ میزاریم یعنی چی؟
      میکرو وقتی میخواد یه دستوری رو اجرا کنه اون دستور بسته به نوعش 1 یا 2 یا چند ماشین سیکل (Machine Cycle) طول میکشه که توی اطلاعات میکرو نوشته که هر دستور چند ماشین سیکل طول میکشه.
      مثلا دستور "nop" یک ماشین سیکل طول میکشه ، حالا این یک ماشین سیکل بر حسب زمان چقدر میشه رو فرکانس کلاک تعیین میکنه.
      فرض بگیر کلاک رو گذاشتیم روی 1 مگ.چون میکرو AVR با 1/1 فرکانس کریستال کار میکنه ، پس هر ماشین سیکل ما 1 میکروثانیه طول میکشه و اگر این فرکانس بشه 8 مگ ماشین سیکل ما 125 نانو ثانیه طول میکشه. اون دستور nop همون یک ماشین سیکله ، اما اگر کلاک 1 مگ باشه ، 1 میکروثانیه و اگر 8 مگ باشه 125 نانو ثانیه طول میکشه.
      پس هر چقدر فرکانس بیشتر بشه سرعت اجرای دستورات بیشتر میشه.
      حالا شما میخوای فرکانست روی 8 مگ باشه و 200 میلی ثانیه تاخیر داشته باشی تو برنامت.
      باید حساب کنی 200 میلی ثانیه چند ماشین سیکل میشه.
      هر 8 ماشین سیکل میشه 1 میکرو ثانیه و هر 1000 میکرو ثانیه میشه یک میلی ثانیه پس 800000 ماشین سیکل لازم داری تا 200 میلی ثانیه رو ایجاد کنی.
      امیدوارم تونسته باشم معنی کلاک رو بگم.

      دیدگاه


        #4
        پاسخ : تنظیم کلاک

        نوشته اصلی توسط امیر . م
        عزیز جان ببین، اگر میکرو کلاک نداشته باشه عملا هیچ کاری نمیکنه و مثل "بز" نگات میکنه :nerd:
        پس کلاک لازمه کار میکرو هست. حالا فرکانس رو روی 8 مگ یا 4 مگ میزاریم یعنی چی؟
        میکرو وقتی میخواد یه دستوری رو اجرا کنه اون دستور بسته به نوعش 1 یا 2 یا چند ماشین سیکل (Machine Cycle) طول میکشه که توی اطلاعات میکرو نوشته که هر دستور چند ماشین سیکل طول میکشه.
        مثلا دستور "nop" یک ماشین سیکل طول میکشه ، حالا این یک ماشین سیکل بر حسب زمان چقدر میشه رو فرکانس کلاک تعیین میکنه.
        فرض بگیر کلاک رو گذاشتیم روی 1 مگ.چون میکرو AVR با 1/1 فرکانس کریستال کار میکنه ، پس هر ماشین سیکل ما 1 میکروثانیه طول میکشه و اگر این فرکانس بشه 8 مگ ماشین سیکل ما 125 نانو ثانیه طول میکشه. اون دستور nop همون یک ماشین سیکله ، اما اگر کلاک 1 مگ باشه ، 1 میکروثانیه و اگر 8 مگ باشه 125 نانو ثانیه طول میکشه.
        پس هر چقدر فرکانس بیشتر بشه سرعت اجرای دستورات بیشتر میشه.
        حالا شما میخوای فرکانست روی 8 مگ باشه و 200 میلی ثانیه تاخیر داشته باشی تو برنامت.
        باید حساب کنی 200 میلی ثانیه چند ماشین سیکل میشه.
        هر 8 ماشین سیکل میشه 1 میکرو ثانیه و هر 1000 میکرو ثانیه میشه یک میلی ثانیه پس 800000 ماشین سیکل لازم داری تا 200 میلی ثانیه رو ایجاد کنی.
        امیدوارم تونسته باشم معنی کلاک رو بگم.
        ممنون از جوابتون، لطف کردید :job:
        ببخشید فقط یخورده گیج شدم، من اگه تو کانفیگ برنامه کلاک رو بزارم روی 8mhz، ماشین سیکل رو چطور باید تنظیم کرد؟ اون هم دست خودمه؟
        یا باید اول ماشین سیک رو حساب کرد بعد فرکانس رو ست کرد؟
        بعد اینکه تو کانفیک کلاک ست میشه بعد موقع پروگرام کردن میکرو که نگاه کردم تو قسمت فیوزبیت ها یه قسمتش نوشته :
        int. rc. Ocs 9.6 و 4.8 و ...
        اینها هم ربطی به این قضیه دارن؟

        دیدگاه


          #5
          پاسخ : تنظیم کلاک

          ماشین سیکل ست نمیشه بلکه بر اساس کلاک محاسبه میشه. مثلا کلاک 8 مگ باشه هر ماشین سیکل میشه 125 نانو ثانیه و یا کلاک باشه 1 مگ ماشین سیکلت میشه 1 میکرو ثانیه. اینطور نیست که کلاک رو بذاری 8 مگ و ماشین سیکلت رو تنظیم کنی رو 1 میکرو ثانیه!
          حالا میایم سر فیوز بیتها.
          وقتی شما کلاک رو میزاری رو 8 مگ ، این فرکانس 8 مگا هرتز باید از یه جایی تامین بشه دیگه ، درسته؟
          میتونید از یک اسیلاتور خارجی یا کریستال خارجی یا RC اسیلاتور داخلی یا ... این کلاک رو تامین کنید.
          با تنظیم درست فیوزبیتهای مربوط به کلاک ، شما در اصل به میکرو منبع کلاک رو معرفی میکنید.
          مثلا، اگر شما بخواید از کریستال 8 مگ استفاده کنید که دو تا خازن حدود 15 پیکو هم میخواد ، فیوزبیتهای کلاک رو باید روی 1111 تنظیم کنی.

          میتونید این کار رو با اوسیلاتور داخلی هم انجام بدید که الان درست یادم نیست ولی فکر کنم میشد 0100.
          اوسیلاتور داخلی فقط فرکانسهای 1و2و4و8 مگ رو داره ، اما کریستال خارجی رو میتونید تو هر رنجی تا 16 مگ بزارید. مثلا 14.7456 مگ .

          معمولا یا از یکی از 4 فرکانس داخلی استفاده میکنن که در این صورت به پایه های xtal , xtal2 چیزی وصل نمیشه و یا از کریستال خارجی استفاده میکنن ، که با تنظیم فیوزبیتها به میکرو میفهمونیم که منبع کلاکش چیه.

          دیدگاه


            #6
            پاسخ : تنظیم کلاک

            کتاب معماری کامپیوتر بخون(قسمت طراحی کامپیوتر پایه به روش سیمبندی)
            فیلم های آموزشی avr ببین
            از پروژه های کوچیک شروع کن( همین روشن خاموش کزدن ال ای دی خوبه)>>7سگمنت>>کیپد>>السیدی کاراکتری>> کار با تایمر و ...)
            راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
            کوچ کردن از کدويژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
            نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
            http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
            انشالله به زودي تاپيک ها به روز رساني خواهد شد،

            دیدگاه

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