اطلاعیه

Collapse
No announcement yet.

وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

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

    وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

    سلام - طبق عکس زیر(دیتاشیت مگا16) واحد کنترل کلاک میکرو



    کلاک ADC : برا aDC هستش( :mrgreen
    کلاک IO : برا پایه های ورودی خروجی هستش
    کلاک FLASH : برا اطلاعاتی که تو حافظه FLASH و EEPROM ذخیره مشن هستش
    کلاک ASY : برا تایمر/کانتر(مد آسنکرون) هستش

    سوال 1) خوب تا این جا درست گفتم؟؟؟
    سوال2) این کلاک CPU کارش چیه و چه کار هایی انجام میده؟؟؟؟
    اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

    اگه دوس دارید سریع به جواب برسید :
    1) قبل از پرسیدن سوال، بسرچید.
    2) سوالاتون رو با جزئیات کامل مطرح کنید.

    #2
    پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

    سلام
    خب برای خود cpu هست دیگه, اون avr clock controlle unit منبع کلاک هست که شما با فیوزبیت ها انتخاب میکنی مثل کریستال خارجی
    cpu clock برای خود هسته cpu و رجیسترهای عمومی r0 ----r31 و رجیستر وضعیت sreg و حافظه داده sram هستش
    امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

    دیدگاه


      #3
      پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

      و اون cpu clock controlle unit هم وصله به clock multiplexer و مولتی پلکسر هم به به منابع کلاک و یا نونساز rc داخلی و نوسان سازrc خارجی مثل کریستال وغیره.......
      امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

      دیدگاه


        #4
        پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

        والا من یه پروژه ساعت نوشتم که تو حالت عادی کار میکنه(در عمل تست کردم) اما وقتی کتابخانه sleep و مد idle رو انتخاب میکنم دیگه کار نمیکنه....خواستم ببینم مشکل از کجاس

        گفتم شاید به خاطر غیر فعال بود CLKcpu باشه بعد گفتم ببینم اگه این غیر فعال باشه از چه امکانات میکرو نمیشه استفاده کرد

        این پروژه ام هستش...به نظرت کجاش مشکل داره؟

        [code=c]#include <mega16.h>
        #include <sleep.h>
        #include <stdlib.h>
        #include <lcd.h>
        #asm
        .equ __lcd_port=0x1B ;PORTA
        #endasm


        int i = 0;
        int Second=0, Minute=59, Hour=23;
        char Str_Second[1],Str_Minute[1],Str_Hour[1];


        interrupt[TIM2_COMP] void Timer_Counter2_comp()
        {
        i++;

        if(i == 125)
        {
        Second++;

        if(Second==60){Second=0; Minute++;}
        if(Minute==60){Minute=0; Hour++;}
        if(Hour==24){Hour=0;}

        itoa(Hour,Str_Hour);
        lcd_gotoxy(4,1);
        if(Hour<10)lcd_puts("0"
        lcd_puts(Str_Hour);
        lcd_gotoxy(6,1); lcd_putchar(':'
        //////////////////////////////////
        itoa(Minute,Str_Minute);
        lcd_gotoxy(7,1);
        if(Minute<10)lcd_puts("0"
        lcd_puts(Str_Minute);
        lcd_gotoxy(9,1); lcd_putchar(':'
        //////////////////////////////////
        itoa(Second,Str_Second);
        lcd_gotoxy(10,1);
        if(Second<10)lcd_puts("0"
        lcd_puts(Str_Second);

        i = 0;
        }

        idle();
        sleep_enable();
        }


        void main(void)
        {
        lcd_init(16);
        lcd_gotoxy(0,0);lcd_puts("DMF313.IR Timer"

        // TIMER2
        // Clock Timer2 = CLK/256 >>>>> CS20 = 0, CS21 = 1, CS22 = 1
        // Mode = CTC >>>>> WGM20 = 0, WGM21 = 1
        // Timer/Counter Output Compare Match Interrupt Enable >>>>> OCIE2 = 1
        TCCR2 = (0<<FOC2) | (0<<WGM20) | (0<<COM21) | (0<<COM20) | (1<<WGM21) | (1<<CS22) | (1<<CS21) | (0<<CS20);
        TIMSK = (1<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
        //TIFR = (0<<OCF2) | (0<<TOV2) | (0<<ICF1) | (0<<OCF1A) | (0<<OCF1B) | (0<<TOV1) | (0<<OCF0) | (0<<TOV0);
        //ASSR = (0<<AS2) | (0<<TCN2UB) | (0<<OCR2UB) | (0<<TCR2UB);
        TCNT2 = 0;
        OCR2 = 250;
        #asm("sei&quot

        idle();
        sleep_enable();

        while(1);
        }[/code]
        اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

        اگه دوس دارید سریع به جواب برسید :
        1) قبل از پرسیدن سوال، بسرچید.
        2) سوالاتون رو با جزئیات کامل مطرح کنید.

        دیدگاه


          #5
          پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

          نوشته اصلی توسط md3848
          والا من یه پروژه ساعت نوشتم که تو حالت عادی کار میکنه(در عمل تست کردم) اما وقتی کتابخانه sleep و مد idle رو انتخاب میکنم دیگه کار نمیکنه....خواستم ببینم مشکل از کجاس

          گفتم شاید به خاطر غیر فعال بود CLKcpu باشه بعد گفتم ببینم اگه این غیر فعال باشه از چه امکانات میکرو نمیشه استفاده کرد

          این پروژه ام هستش...به نظرت کجاش مشکل داره؟

          [code=c]#include <mega16.h>
          #include <sleep.h>
          #include <stdlib.h>
          #include <lcd.h>
          #asm
          .equ __lcd_port=0x1B ;PORTA
          #endasm


          int i = 0;
          int Second=0, Minute=59, Hour=23;
          char Str_Second[1],Str_Minute[1],Str_Hour[1];


          interrupt[TIM2_COMP] void Timer_Counter2_comp()
          {
          i++;

          if(i == 125)
          {
          Second++;

          if(Second==60){Second=0; Minute++;}
          if(Minute==60){Minute=0; Hour++;}
          if(Hour==24){Hour=0;}

          itoa(Hour,Str_Hour);
          lcd_gotoxy(4,1);
          if(Hour<10)lcd_puts("0"
          lcd_puts(Str_Hour);
          lcd_gotoxy(6,1); lcd_putchar(':'
          //////////////////////////////////
          itoa(Minute,Str_Minute);
          lcd_gotoxy(7,1);
          if(Minute<10)lcd_puts("0"
          lcd_puts(Str_Minute);
          lcd_gotoxy(9,1); lcd_putchar(':'
          //////////////////////////////////
          itoa(Second,Str_Second);
          lcd_gotoxy(10,1);
          if(Second<10)lcd_puts("0"
          lcd_puts(Str_Second);

          i = 0;
          }

          idle();
          sleep_enable();
          }


          void main(void)
          {
          lcd_init(16);
          lcd_gotoxy(0,0);lcd_puts("DMF313.IR Timer"

          // TIMER2
          // Clock Timer2 = CLK/256 >>>>> CS20 = 0, CS21 = 1, CS22 = 1
          // Mode = CTC >>>>> WGM20 = 0, WGM21 = 1
          // Timer/Counter Output Compare Match Interrupt Enable >>>>> OCIE2 = 1
          TCCR2 = (0<<FOC2) | (0<<WGM20) | (0<<COM21) | (0<<COM20) | (1<<WGM21) | (1<<CS22) | (1<<CS21) | (0<<CS20);
          TIMSK = (1<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
          //TIFR = (0<<OCF2) | (0<<TOV2) | (0<<ICF1) | (0<<OCF1A) | (0<<OCF1B) | (0<<TOV1) | (0<<OCF0) | (0<<TOV0);
          //ASSR = (0<<AS2) | (0<<TCN2UB) | (0<<OCR2UB) | (0<<TCR2UB);
          TCNT2 = 0;
          OCR2 = 250;
          #asm("sei&quot

          idle();
          sleep_enable();

          while(1);
          }[/code]
          اگر clk قسمت CPU کار نکنه، شما نمی تونی از دستوراتی که مستقیم با CPU درگیرند استفاده کنی مثل افزایش یک متغیر، مقایسه متغیر و ... .
          ---------
          .
          .
          ...........

          دیدگاه


            #6
            پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

            دقیقا میشه بگید چه کارهایی به cpu میکرو وابسته هستن...غیر از اینایی که گفتید.
            اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

            اگه دوس دارید سریع به جواب برسید :
            1) قبل از پرسیدن سوال، بسرچید.
            2) سوالاتون رو با جزئیات کامل مطرح کنید.

            دیدگاه


              #7
              پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

              نوشته اصلی توسط md3848
              دقیقا میشه بگید چه کارهایی به cpu میکرو وابسته هستن...غیر از اینایی که گفتید.
              cpu داخل میکروکنترلر رو یک alu در نظر بگیرید. تمام کارهایی که ALU انجام میده مثل اعمال منطقی و حسابی رو نمی تونید انجام بدید.
              پس ضرب، تقسیم، جمع و تفریق، شیفت، مقداردهی به متغیرها، .... همه و همه با CPU انجام میشه. میشه گفت برنامه تون اجرا نمیشه. فقط واحدهای سخت افزاری کار می کنند. مثلا تایمر کار خودشو می کنه، ADC همینطور و ... .
              ---------
              .
              .
              ...........

              دیدگاه


                #8
                پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

                خوب من تو تابع MAIN اومدم و مد SLEEP رو فعال کردم، حالا اگه وقفه مقایسه رخ بده میکرو بیدار میشه، ولی محاسبات انجام شده و دوباره به خواب میره..

                هر طور که حساب میکنم پروژه من درسته .....نمیدونم مشکل کجاس

                کسی میدونه؟
                اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                اگه دوس دارید سریع به جواب برسید :
                1) قبل از پرسیدن سوال، بسرچید.
                2) سوالاتون رو با جزئیات کامل مطرح کنید.

                دیدگاه


                  #9
                  پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

                  تو پروژه بالا...وقتی کد رفتن به SLEEP مد idle رو تو حقه وایل میزارم(و از داخل وقفه ورش میدارم) پروژه کار میکنه.......ولی نمیدونم چرا همین تابع idle رو ته وقفه میزارم پروژه کار نمیده...

                  کسی علتش رو میدونه؟؟؟
                  اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                  اگه دوس دارید سریع به جواب برسید :
                  1) قبل از پرسیدن سوال، بسرچید.
                  2) سوالاتون رو با جزئیات کامل مطرح کنید.

                  دیدگاه


                    #10
                    پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

                    چون که به هر حال میکرو خودش رو توی وقفه نگه نمیداره و دستورات خارج شدن از وقفه رو اجرا میکنه (به اسمبلی --> return)....
                    اینکه این مدل دستورات رو در وقفه قرار بدید کار اصولی نیست...
                    تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                    www.intelart.ir


                    ساخت کنترلر دما PID فازي با AVR [آموزشی]

                    دیدگاه


                      #11
                      پاسخ : وظایف CPU میکرو AVR چیه(CLKcpu)؟؟؟

                      میگم این مد ADC Noise Reduction تو تابع sleep چطور فعال میشه؟
                      من تابعی تو این کتاب خونه در این باره ندیم....یعنی باس از ریجستر استفاده کنم؟
                      ========
                      اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّدٍ وعَجِّلْ فَرَجَهُمْ

                      اگه دوس دارید سریع به جواب برسید :
                      1) قبل از پرسیدن سوال، بسرچید.
                      2) سوالاتون رو با جزئیات کامل مطرح کنید.

                      دیدگاه

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