اطلاعیه

Collapse
No announcement yet.

دستور delay_ms

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

    دستور delay_ms

    سلام، من از اتمگا64 استفاده کردم و کریستال خارجی 16 مگاهرتز قرار دادم، ولی وقتی از دستورdelay_ms استفاده میکنم برای تاخیر یک ثانیه ای، و برنامه رو پروگرم میکنم رو آی سی ، این تاخیر بسیار بیشتر از یک ثانیه طول میکشه، نمیدونم ایراد کارم کجاست؟

    #2
    پاسخ : دستور delay_ms

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

    دیدگاه


      #3
      پاسخ : دستور delay_ms

      فرکانس برنامه 16 مگاهرتز هست، تو فیوزبیتها هم فقطckoptرا صفر کردم، باید فیوزبیتها رو دیگه چجوری تنظیم کنم؟

      دیدگاه


        #4
        پاسخ : دستور delay_ms

        فیوزبیت های CKSEL رو 1111 کن . (برای فرکانس بالا باید اینا تنظیم شن)
        اگه زیاد آشنایی با فیوز بیت نداری اینم یه دید بزن:

        http://azarrobot.persiangig.com/document/avr/Fuse%20bits%20and%20lock%20bits%20(AVR).rar/download?a1b6



        یا یه دید به این لینک هم بزن:
        سلام به همه دوستداران میکروکنترلر و به ویژه دوستداران مبحث فیوز بیت ها. :bye یه مدت بود که خیلی می دیدم راجع به فیوز بیت ها سوال میشه شاید خیلی ها تو این موضوع مشکل داشته باشن. ولی دیگر نگران نباشید ما تصمیم گرفتیم از این پس تو این تایپیک به صورت مفصل راجع به فیوز بیت ها بحث کنیم تا مشکلی باقی نمونه. مطالبی که ارائه می شود
        جدیدترین ویرایش توسط hosseinam; ۱۱:۵۴ ۱۳۹۵/۰۷/۲۵.
        به سمت نور خورشید حرکت کن،تو میتونی تابش خورشید رو حس کنی ،حتی اگه کور باشی.
        (پیش به سوی هدف)

        دیدگاه


          #5
          پاسخ : دستور delay_ms

          این فیوزبیتهایی م که فرمودین رو انجام دادم، یعنی در کل cksel یک هستند و ckopt صفر، ولی بازم تاخیر بیش از اندازه دارم!

          دیدگاه


            #6
            پاسخ : دستور delay_ms

            سلام
            اگر با کد ویژن کار میکنید از مسیر project-configure-c compiler-clock رو هم روی 16 مگ بزارید
            موفق باشید

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

            البته دوباره پروژتونو کامپایل کنید

            دیدگاه


              #7
              پاسخ : دستور delay_ms

              بله تو این مسیر فرکانس روی 16 مگ هست

              دیدگاه


                #8
                پاسخ : دستور delay_ms

                زبان برنامه نویسی شما چیه ؟
                اگه فرکانس 16 رو رو ی فیوز بیت هم اجرا کردین !
                بهتره تو یه حلقه دستور قطع و وصل یه خروجی رو بدین با تاخیر مورد نظر سپس خروجی رو با اسکوپ نشد با اسپیکر واگه باز نشد با ال ای دی و چیزی که به خروجی متصل می کنید بهتره با یه مقاومت 220 اهمی سری تا به خروجی میکر اسیب نزنه
                حال اگه این تاخیر یک ثانیه باشه شما می تونید ببیند خروجی رو
                واما اگه در واقع تاخیر همانی باشد که گفتین و مشاهده کردین برین سراغ delay_us
                و اگه مشاهده کردین خروجی خیلی سریع تر از یک ثانیه می باشد ممکنه تاخیر مورد ذکر شما بخاطر تاخیر کلی برنامه باشه
                جدیدترین ویرایش توسط ssmq; ۱۳:۵۰ ۱۳۹۵/۰۷/۲۵.

                دیدگاه


                  #9
                  پاسخ : دستور delay_ms

                  این بنده دا مشخصه تازه شروع کرده به یادگیری بعید میدونم اسکوپ داشته باشه.
                  شما برنامتو بذار ببینیم مشکلش چیه . شاید مشکل برنامه نویسی داره .
                  مراحل کار ه به این شکله کهک
                  فرکانس رو در کامپایلرت(کدویژن) روی 16 قرار بده
                  برنامه رو BUILD کن تا کد هگز ساخته بشه
                  فیوزبیت ها رو هم روی 16 مگا هرتز تنظیم کن و فایل هگز رو به میکرو بفرست

                  دیدگاه


                    #10
                    پاسخ : دستور delay_ms

                    زبان برنامه نویسی c تو محیط کدویژن هست، برای تست میکرو که ببینم پروگرم میشه یا نه فقط برنامه چشمک زدن ال ای دی رو نوشتم ، هنوز سراغ برنامه اصلی نرفتم. تو این برنامه چشمک زن متوجه شدم که delay یک ثانیه ای که قرار داده بودم بیشتر از یک ثانیه طول میکشه و فاصله بین روشن و خاموش شدن ال ای دی خیلی بیشتر از یک ثانیه است. فرکانس رو تو برنامه 16 مگ تعیین کردم، فیوز بیتها هم فقط ckopt را فعال کردم که صفر باید باشه. کد هگز هم داخل میکرو میفرستم،
                    پروگرمر من avr910 هست و آی سی مگا64 که از طریق isp پروگرم میکنمش.

                    دیدگاه


                      #11
                      پاسخ : دستور delay_ms

                      شما مطمئن شید که کریستال خارجی فعال میشه. بنظرم روی کریستال داخلی کار میکنید.
                      یه نکته رو توجه داشته باشید که پروگرم شدن فیوزبیت باعث صفر شدنش میشه

                      دیدگاه


                        #12
                        پاسخ : دستور delay_ms

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

                        دیدگاه

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