اطلاعیه

Collapse
No announcement yet.

من نیاز به اطلاعاتی در باره تایمر2 در atmega32&16دارم؟

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

    من نیاز به اطلاعاتی در باره تایمر2 در atmega32&16دارم؟

    تایمر2 در میکرو m32 و m16 چگونه در حالت Automatic Reaction و در bascom کار میکند؟
    ایا کسی هست که کمک کند؟؟؟؟؟؟

    #2
    پاسخ : من نیاز به اطلاعاتی در باره تایمر2 در atmega32&16دارم؟

    نوشته اصلی توسط PISHVA
    تایمر2 در میکرو m32 و m16 چگونه در حالت Automatic Reaction و در bascom کار میکند؟
    ایا کسی هست که کمک کند؟؟؟؟؟؟
    تایمر کانتر 2 هشت بیتی می باشد و می تواند در مد تایمر . کانتر . PWM . COMPARE
    در بعضی از میکروها از جمله MEGA103 تایمرکانتر2 به صورت کانتر نیز میتواند کار کند ولی در بعضی دیگر از جمله MEGA32 تایمر کانتر2 نمیتواند در مد کانتر عمل کند .
    پیکره بندی تایمرکانتر2 در مد تایمر:
    CONFIG TIMER2 = TIMER ,ASYNC = ON / OFF ,PRESCALE = 1/8/32/64/128/256/1024
    دستورات بالا نحوه CONFIG را نشان می دهد
    یک مثال:
    $REGFILE = "M8DEF.DAT"
    $CRYSTAL =1000000
    CONFIG TIMER2 = TIMER ,PRESCALE = 256
    CONFIG PORTB = OUTPUT
    ENABLE INTERRUPTS
    ENABLE TIMER2
    ENABLE OVF2
    ON OVF2 PISHVA
    STAR TIMER2
    DO
    LOOP
    END
    PISHVA:
    TOGGLE PORTB
    RETURN
    در مثال بالا از میکرو MEGA8 استفاده شده . برنامه به این صورت است که هر 256 میکروثانیه میکرو به زیربرنامه PISHVA پرش می کند و دستورات داخل این زیربرنامه را اجرا میکند ( در اینجا TOGGLE PORTB ) .



    انجمن LABVIEW
    http://www.eca.ir/forum2/index.php?board=279.0
    اموزش ميكروكنترلرهاي AVR به زبان ساده
    http://www.eca.ir/forum2/index.php/topic,7070.0.html

    دیدگاه


      #3
      پاسخ : من نیاز به اطلاعاتی در باره تایمر2 در atmega32&16دارم؟

      سلام
      فکر کنم که درست متوجه منظورم نشده باشید
      حالتی وجود دارد که بدون گرفتن وقت cpu میتوان فرکانسی را روی یکی از پایه ها تولید کرد که به ان
      Automatic Reaction میگویند. در 89c51 و بقیه ای سی های سازگار با ان هم این قابلیت موجود است.
      در قسمت تایمر میکروهای AVR(Atmega( مخصوصا تایمر های صفر و یک, قابلییتی وجود دارد که اصطلاحا به ان
      Automatic Reload میگویند,که در این حالت از کار , بدون اینکه وقت با ارزش cpu گرفته شود میتوان از تایمر برای تولید یک موج مربعی بر روی یکی از پایه ها
      استفاده کرد!!!!!! حالا سوال من این است که چگونه میتوان از این قابلییت در Atmega16 or 32 استفاده کرد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

      دیدگاه


        #4
        پاسخ : من نیاز به اطلاعاتی در باره تایمر2 در atmega32&16دارم؟

        دوست عزیز تا جایی که من اطلاع دارم تایمرهای AVR قابلیتی به اسم Automatic Reaction یا Automatic Reload ندارند و AT89C51 هم توانایی اینکه سخت افزاری شکل موج ایجاد کند را دارا نیست.
        منظور شما ایجاد شکل موج روی پین های OCx توسط تایمر است که همه ی تایمرهای 8 و 16 بیتی AVR در Mode های Normal و CTC این قابلیت را دارند. در مد CTC شما می توانید فرکانس موج را به صورت سخت افزاری تغییر دهید بدین ترتیب که عددی که در رجیستر OCRx وجود دارد TOP تایمر را تعیین کرده و مطابق تنظیمات بیت های COM شکل موج روی پین OCx تولید می شود. به عنوان مثال در برنامه ی زیر رجیسترها تنظیم شده و بعد در حلقه ی بی نهایت while، برنامه معطل شده (CPU کاری انجام نمی دهد) و به صورت خودکار روی پین OC0 موج مربعی با فرکانس 5 کیلو هرتز ایجاد می شود.



        کد:
        #include<mega16.h>
        #define xtal 8000000
        
        void main()
        {   
            DDRB=0xFF;
            PORTB=0x00;
            TCNT0=0x00;
            OCR0=0x63; //OCR0=99   
            TCCR0=0B00011010; //toggle OC0 on compare match
            
            while(1);
        }
        There is nothing so practical as a good theory. — Kurt Lewin, 1951

        دیدگاه


          #5
          پاسخ : من نیاز به اطلاعاتی در باره تایمر2 در atmega32&16دارم؟

          AVR130: Setup and Use the AVR® Timers
          با عرض معذرت اگر به سایت اتمل و قسمت aplication note بروید و این فایل را مشاهده نمایید در صفحه سوم و پاراگراف

          سوم- میتوانید این را ببینید:

          Automatic Reaction on Events

          Timer1 and Timer2 support the possibility to react on timer interrupt events on a purely
          hardware basis without the need to execute code. Related output pins can be configured
          to be set, cleared or toggled automatically on a compare match. In contrast to the
          two other solutions this happens in parallel to normal code execution and requires no
          processing time.
          The following code example shows how to set the compare value and enable pin toggling.
          In general the set up of the pin-action is done by configuring the two bits COMx0
          and COMx1 in TCCRx. The configuration of Timer2 can look like this:
          ldi r16,(1<<COM20)|(1<<CS20)
          out TCCR2,r16 ; OC2 toggling on compare match/timer
          ; clock = system clock
          ldi r16,32
          out OCR2,r16 ; Set output compare value to 32
          To enable pin toggling, the data direction register bit corresponding to OCx has to be set
          to make it an output pin.

          دیدگاه

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