اطلاعیه

Collapse
No announcement yet.

مشکل با تایمر و فرکانس rc داخلی

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

    مشکل با تایمر و فرکانس rc داخلی

    با سلام من یه ساعت با atmega32 ساختم ولی 60 ثانیه به جای اینکه 60 ثانیه باشه در حقیقت 58 ثانیه است و در هر ثانیه 2 ثانیه جلو می افته
    فرکانسم و 4 مگا هرتز داخلی گذاشتم تو مد ctc کار می کنه و رجیستر ocr1a=3d08 و با ضریب تقسیم 256.
    اولا می خواستم بدونم ممکنه که فرکانس داخلی کم یا زیاد باشه یا نه اگه نه مشکل از کجا می تونه باشه. این هم برنامه
    #include <mega32.h>
    #include <lcd.h>
    #include <stdio.h>
    #include <delay.h>
    #asm
    .equ __lcd_port=0x1B;
    #endasm
    unsigned char sec,min,hour;
    unsigned char hos[13];
    void dis (void){
    sprintf(hos,"time=%d:%d:%d",hour,min,sec );
    lcd_clear();
    lcd_puts(hos);
    }
    interrupt [TIM1_COMPA] void timer1_compa_isr(void){
    sec++;
    if(sec==60){
    sec=0;
    min++;
    if(min==60){
    min=0;
    hour++;
    if(hour==24)hour=0;
    }
    }
    dis();
    }
    void main (void){
    lcd_init(16);
    DDRB=0;
    PORTB=255;
    TCCR1B=0;
    OCR1AH=0x3d;
    OCR1AL=0x08;
    TIMSK=0x10;
    TCCR1B=0;
    #asm ("sei&quot
    dis();
    while(1){
    while(PINB.0==0){
    delay_ms(200);
    TCCR1B=0x0;
    min++;
    sec=0;
    if(min==60)min=0;
    dis();
    }
    while(PINB.1==0){
    delay_ms(200);
    TCCR1B=0x0;
    hour++;
    sec=0;
    if(hour==24)hour=0;
    dis();
    }
    if((PINB.0&PINB.1)==1){
    TCCR1B=0xc;
    }
    }
    }

    #2
    پاسخ : مشکل با تایمر و فرکانس rc داخلی

    کماکان نیازمند یاری سبزتان هستیم.

    دیدگاه


      #3
      پاسخ : مشکل با تایمر و فرکانس rc داخلی

      برای اینکار از RTC و یک کریستال 32768 هرتزی که کمک بگیری مشکلت عمدتا حل میشه. چون در هر صورت خطای کار تایمر روی هم جمع میشه و ساعت رو عقب و جلو میکنه. عین همین مورد رو 8051 در حالت autoreload داره.

      یک کریستال 32768 هرتزی (میشه 32.768 کیلو هرتز. با 32.768 مگا هرتز اشتباه نگیری) بین پایه های TOSC1 و TOSC2 قرار بده و مدرک مربوط به میکرو رو در قسمت تایمر 2 رو بخون.

      دیدگاه


        #4
        پاسخ : مشکل با تایمر و فرکانس rc داخلی

        با درود . . .

        اشکال عمده مدار شما اینه که با کریستال داخلی تنظیمش کردی که به عبارتی کاملاً پرته و دقیق نیست
        برای اینکار بهترین راه استفاده از مد RTC میکرو هستش و تنها نیاز به یه کریستال 32.768 (همون کریستال ساعت خودمون) داری. دقتش هم بستگی به نوع کریستالت داره و هر چی بهتر باشه دقیقتره.( همون طور که آقا رضا گفتن )
        درد من تنهایی نیست؛ بلکه مرگ ملتی است که گدایی را قناعت، بی‏عرضگی را صبر، و با تبسمی بر لب این حماقت را حکمت خداوند می‏ نامند! "گاندی"

        به دلیل وجود برخی مشکلات و بی احترامی ها این اکانت رو غیر فعال کردم. همیشه سر بلند باشید.
        بدرود . . .

        دیدگاه


          #5
          پاسخ : مشکل با تایمر و فرکانس rc داخلی

          خیلی ممنون از جوابتون

          دیدگاه

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