اطلاعیه

Collapse
No announcement yet.

مشکل با تایمر ATmega32

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

    مشکل با تایمر ATmega32

    سلام
    من میخوام یه موج مربعی با فرکانس 1MHz تولید کنم. برای این کار از تایمر1 میکرو و سرریز استفاده میکنم. فرکانس تایمر رو هم 8MHz میذارم که فرکانس میکرومه. توی رجیستر تایمر هم عدد fff8 بارگذاری میکنم. تو روتین تایمر یک بیت از پورت میکرو را صفرویک میکنم اما ماکزیمم فرکانسی که میگیرم 100KHz میشه!!
    کسی میتونه راهنماییم کنه؟
    ممنون

    #2
    پاسخ : مشکل با تایمر ATmega32

    سلام ایا شما این جوابی که میگیری روی سخت افزار یااینکه توی پروتئوس داری جواب میگیری ایا توی سخت افزارت فیوز بیتهای میکروتو تغییر میدی چون اگه تغییر ندی میکرو مبنا رو واسه فرکانس اولیه اش یعنی 1 مگا هرتز میزاره

    دیدگاه


      #3
      پاسخ : مشکل با تایمر ATmega32

      ممنون از جوابتون. هم با پروتئوس چک کردم هم سخت افزاری. با هردوتاش هم به یه نتیجه رسیدم. اما در کل هم کاری به فیوزبیت ها نداشتم. نمیدونم منظورتون چیه و چیو باید تغییر بدم؟

      دیدگاه


        #4
        پاسخ : مشکل با تایمر ATmega32

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

        دیدگاه


          #5
          پاسخ : مشکل با تایمر ATmega32

          سلام
          تایمر به درد ساخت فرکانس 1MHz نمی خورد
          از برنامه ی اسمبلی برای این کار استفاده می شود

          کد:
          while1:
            SBI PORTB,0
            nop
            CBI PORTB,0
            nop
          RJMP while1
          در این برنامه دستور SBI مدت 2 سیکل تاخیر دارد. دستور nop یک سیکل، دستور CBI دو سیکل و RJMP نیز دو سیکل اجرا می شود
          که جمعا 8 سیکل می شود. پس اگر فرکانس 8 مگا هرتز شود، خروجی با سرعت 1 مگاهرتز خاموش و روشن می شود
          { خلاف قوانین - پاک شد }
          برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
          آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
          آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

          دیدگاه


            #6
            پاسخ : مشکل با تایمر ATmega32

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

            دیدگاه


              #7
              پاسخ : مشکل با تایمر ATmega32

              نوشته اصلی توسط محمد رضا بیگی
              سلام
              تایمر به درد ساخت فرکانس 1MHz نمی خورد
              از برنامه ی اسمبلی برای این کار استفاده می شود

              کد:
              while1:
                SBI PORTB,0
                nop
                CBI PORTB,0
                nop
              RJMP while1
              در این برنامه دستور SBI مدت 2 سیکل تاخیر دارد. دستور nop یک سیکل، دستور CBI دو سیکل و RJMP نیز دو سیکل اجرا می شود
              که جمعا 8 سیکل می شود. پس اگر فرکانس 8 مگا هرتز شود، خروجی با سرعت 1 مگاهرتز خاموش و روشن می شود
              ممنون از راهنماییتون. من این کارو کردم البته تو کدویژن از PORTB ایراد میگیره منم بجاش $16 نوشتم که آدرش پورت B میشه. اما هیچ اتفاقی واسه بیت صفر پورت B نمی افته و همیشه یک مقدار ثابت میمونه.

              دیدگاه


                #8
                پاسخ : مشکل با تایمر ATmega32

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

                دیدگاه


                  #9
                  پاسخ : مشکل با تایمر ATmega32

                  سلام. منم یه سوالی در همین رابطه داشتم :nerd: . ممنون میشم اگه دوستان کمک کنن. حداکثر فرکانسی که کریستال داخلی میکرو ایجاد میکنه چنده؟ منظورم اینه که من فرکانس رو روی 1000000 که میزارم سرعت میکرو بیشتر از وقتیه که فرکانس رو روی 8000000 میزارم. البته بدون استفاده از کریستال. و اینکه از چه فرکانسی به بالا باید در avr از کریستال خارجی استفاده کرد؟

                  دیدگاه


                    #10
                    پاسخ : مشکل با تایمر ATmega32

                    باید DDR پورت را هم خروجی کنید
                    برنامه را به شکل زیر کامل تر می کنم:

                    کد:
                    SBI DDRB,0
                    
                    while1:
                      SBI PORTB,0
                      nop 
                    nop
                      CBI PORTB,0
                    RJMP while1
                    { خلاف قوانین - پاک شد }
                    برد آموزشی ARM: http://www.eca.ir/forum2/index.php?topic=91977
                    آموزش DSP: http://www.eca.ir/forum2/index.php?topic=91940
                    آموزش Allegro: http://www.eca.ir/forum2/index.php?topic=79877

                    دیدگاه


                      #11
                      پاسخ : مشکل با تایمر ATmega32

                      نوشته اصلی توسط محمود سلیمانی
                      سلام. منم یه سوالی در همین رابطه داشتم :nerd: . ممنون میشم اگه دوستان کمک کنن. حداکثر فرکانسی که کریستال داخلی میکرو ایجاد میکنه چنده؟ منظورم اینه که من فرکانس رو روی 1000000 که میزارم سرعت میکرو بیشتر از وقتیه که فرکانس رو روی 8000000 میزارم. البته بدون استفاده از کریستال. و اینکه از چه فرکانسی به بالا باید در avr از کریستال خارجی استفاده کرد؟
                      1- 8mhz
                      2- امکان نداره! فیوزبیت ها رو درست ست میکنید؟
                      3- 8mhz

                      دیدگاه


                        #12
                        پاسخ : مشکل با تایمر ATmega32

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

                        دیدگاه


                          #13
                          پاسخ : مشکل با تایمر ATmega32

                          نوشته اصلی توسط محمد رضا بیگی
                          باید DDR پورت را هم خروجی کنید
                          برنامه را به شکل زیر کامل تر می کنم:

                          کد:
                          SBI DDRB,0
                          
                          while1:
                            SBI PORTB,0
                            nop 
                          nop
                            CBI PORTB,0
                          RJMP while1
                          بله حواسم به خروجی بودن پورت بود. با همین شرایط نتونستم هیچ تغییری تو خروجی ببینم.
                          ممنون

                          دیدگاه


                            #14
                            پاسخ : مشکل با تایمر ATmega32

                            shoma age dar madareton frequency besh az 1000000 dashte basheed bayad fious beet ha ro tagheer beded. hala baste be madareton ya external or internal

                            دیدگاه


                              #15
                              پاسخ : مشکل با تایمر ATmega32

                              سلام
                              اینجا رو ببینید:


                              http://www.eca.ir/forum2/index.php?topic=74749.0

                              احتمالا مشکلتون حل میشه.
                              تست هم بکنید(نه فقط شبیه سازی) ببینید درسته.

                              دیدگاه

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