اطلاعیه

Collapse
No announcement yet.

مشکل در سرعت میکرو avr

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

    مشکل در سرعت میکرو avr

    سلام خدمت همه ی دوستان و آینده سازان این مرز و بوم
    قبل از مطرح کردن مشکل ابتدا چند نکته خدمت شما عزیزان عرض میکنم:

    1.اول اینکه من با کدویژن و با زبان c کار میکنم
    2.مدل پروگرامر من پروگرامر میکروکنترلرهای AVR مدل Multi AVR Programmer است
    3.فیوز بیت میکرو رو روی کریستال خارجی تنظیم کردم یعنی cksel1=1, cksel2=1 , cksel3=1,cksel4=1
    4.در مدار کریستال 16 مگ قرار دادم
    5.نوع میکرو البته فرقی نمیکنه ولی شما مگا 32 یا مگا128 فرض کنید

    حالا مشکل من :
    ابتدا از کدویزارد سرعت میکرو روی 16 مگ قرار میدم و در مدار هم کریستال 16 قرار میدم و برنامه رو اجرا میکنم ولی سرعت تغییر نمیکنه مثل سرعت 1مگ است

    بعد میام سرعت و از قسمت کدویزارد میبرم روی 1مگ و در مدار کریستال 16 قرار میدم میبینم سرعت نسبت به قبل 16 برابر شده یعنی داره درست کار میکنه

    سوال من ایجاست چرا این اتفاق میفته مگه نباید هر مقدار کریستال که در مدار قرار دادیم در کدویزارد هم همون مقدار قرار بدیم؟

    (اینو هم بگم که از قسمت configure هم تنظیم است)

    #2
    پاسخ : مشکل در سرعت میکرو avr

    سلام،
    وقتی پروژه رو ساختین دیگه فرکانس پروژه رو باید از منو Project/Configure/C Compiler تنظیم کنید.
    بعدش کامپایل کنید پروژه رو و برد رو پروگرام کنید.
    فیوزبیت ها رو هم بخونید ببینید درست تنظیم شده یا نه!
    هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...

    دیدگاه


      #3
      پاسخ : مشکل در سرعت میکرو avr

      فیوز بیت ها درسته و گفتم که از قسمت configure سرعتشو تنظیم کردم ولی درست نشد

      ییبن اینجوری برات بگم وقتی من داخل برنامه 16مگ تعریف میکنم و در مدار ، کریستال 16میذارم با وقتی که داخل برنامه 1مگ تعریف میکنم و از کریستال 1مگ داخلی استفاده میکنه هیچ فرقی نمیکنه سرعت هر دوحالت مثل همه

      دیدگاه


        #4
        پاسخ : مشکل در سرعت میکرو avr

        دوستان لطفا کمکم کنید

        دیدگاه


          #5
          پاسخ : مشکل در سرعت میکرو avr

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

          نکات بسیار مهم در تهیه پروگرامر که متاسفانه فراموش میشود!

          دیدگاه


            #6
            پاسخ : مشکل در سرعت میکرو avr

            بله همونجور که دوستمون فرمودند چون به احتمال زیاد از تابع delay استفاده کردید این موضوع طبیعیه.درضمن احتیاجی به تنظیم دوباره کدویزارد نیست.از همون قسمت configure تغییر بدید و بعد برنامه را دوباره کامپایل کنید.
            آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

            دیدگاه


              #7
              پاسخ : مشکل در سرعت میکرو avr

              یعنی شما میگید مثلا delay 100 ms در سرعت16 مگ با سرعت 1مگ یک مقدار است؟

              دیدگاه


                #8
                پاسخ : مشکل در سرعت میکرو avr

                بله همینطوره.
                خود کدویژن با توجه به فرکانس کاری، تابع delay رو تنظیم میکنه تا همون مقدار delay که توی برنامه نوشته شده در عمل هم همان زمان باشه.
                www.gam-co.blogsky.com

                دیدگاه


                  #9
                  پاسخ : مشکل در سرعت میکرو avr

                  نوشته اصلی توسط sajjad71 نمایش پست ها
                  سلام خدمت همه ی دوستان و آینده سازان این مرز و بوم
                  قبل از مطرح کردن مشکل ابتدا چند نکته خدمت شما عزیزان عرض میکنم:

                  1.اول اینکه من با کدویژن و با زبان c کار میکنم
                  2.مدل پروگرامر من پروگرامر میکروکنترلرهای AVR مدل Multi AVR Programmer است
                  3.فیوز بیت میکرو رو روی کریستال خارجی تنظیم کردم یعنی cksel1=1, cksel2=1 , cksel3=1,cksel4=1
                  4.در مدار کریستال 16 مگ قرار دادم
                  5.نوع میکرو البته فرقی نمیکنه ولی شما مگا 32 یا مگا128 فرض کنید

                  حالا مشکل من :
                  ابتدا از کدویزارد سرعت میکرو روی 16 مگ قرار میدم و در مدار هم کریستال 16 قرار میدم و برنامه رو اجرا میکنم ولی سرعت تغییر نمیکنه مثل سرعت 1مگ است

                  بعد میام سرعت و از قسمت کدویزارد میبرم روی 1مگ و در مدار کریستال 16 قرار میدم میبینم سرعت نسبت به قبل 16 برابر شده یعنی داره درست کار میکنه

                  سوال من ایجاست چرا این اتفاق میفته مگه نباید هر مقدار کریستال که در مدار قرار دادیم در کدویزارد هم همون مقدار قرار بدیم؟

                  (اینو هم بگم که از قسمت configure هم تنظیم است)




                  سلام

                  من هم این مشکل برام پیش اومده بود دهنمو آسفالت کرد

                  ولی مشکل با یک بار نصب مجدد کد ویژن و کرک اون حل میشه
                  مشکل عجیبیه ولی هست

                  دیدگاه


                    #10
                    پاسخ : مشکل در سرعت میکرو avr

                    سلام
                    من با ARDUINO IDE دقیقا به همین مشکل برخوردم
                    توی برنامه کریستال 16 مگ خارجی تنظیم میکنم و سخت افزار رو همهمین بستنم اما سرعت اجرای دستورات افتضاحه

                    دیدگاه


                      #11
                      پاسخ : مشکل در سرعت میکرو avr

                      نوشته اصلی توسط abdolahibabak نمایش پست ها
                      سلام
                      من با ARDUINO IDE دقیقا به همین مشکل برخوردم
                      توی برنامه کریستال 16 مگ خارجی تنظیم میکنم و سخت افزار رو همهمین بستنم اما سرعت اجرای دستورات افتضاحه



                      من هم همینطور
                      قبلاً هم همین کار رو میکردم و درست میشد اما الان نمی*دونم چرا arduino ide آنقدر اذیت می*کنه

                      دیدگاه


                        #12
                        پاسخ : مشکل در سرعت میکرو avr

                        سلام
                        مشکل من با آردینو حل شد
                        احتمالا atmega 328 که شما دارید مثل مال من تازه از بازار گرفتید و بوت لودر آردینو رو نداره

                        یه بار بوت لودر آردینو رو روی میکرو باید آپلود کرد و بعد از اون میشه با آردینو آی دی ای میکرو رو پروگرام کرد . این مشکل سرعت هم پیش نمیاد
                        اینم یه لینک آموزشی
                        در این پروژه، نحوه نصب بوت لودر را در میکروکنترلر ATmega328 به شما نشان خواهم داد. با استفاده از این روش، می‌توانید از میکروکنترلر ATmega328 خود به صورت

                        دیدگاه

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