اطلاعیه

Collapse
No announcement yet.

مشکل در تنظیمات تایمر

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

    مشکل در تنظیمات تایمر

    سلام دوستان
    من تازه کار با avr رو شروع کردم و در حال حاضر مشکلی که دارم اینه که نمی تونم timer0 رو تنظیم کنم مثلا اگر بخواهم
    زمان های 1 میکرو ثانیه داشته باشم و از کلاک داخلی هم استفاده کنم باید چی کار کنم
    و در ضمن با کدویژن کار می کنم
    یه سوال دیگه هم که داشتم اینه که اگر بخواهم از کریستال خارجی استفاده کنم آیا تنظیمات خاصی داره یا اینکه موقع پروگرم کردن
    کریستال به آی سی وصل باشه کافیه ؟؟؟؟
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    پیامبر اکرم(ص):زکات علم نشر آن است.
    در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

    #2
    پاسخ : مشکل در تنظیمات تایمر

    سلام دادا.
    فکر کنم یه اشتباهاتی داری.
    اگه بخوای از کلاک خارجی استفاده کنی دیگه باید بهش گفت کانتر، نه تایمر. کانتر هم کارش شمارشه پالس ورودیه و ایجاد زمان.
    من فکر کنم منظور شما از کلاک خارجی همون کریستال خارجی باشه.

    در مورد نصب کریستال خارجی هم کار خاصی نداره. بعد از نصب سخت افزاری، کافیه توی فیوز بیت ها اونو روی کریستال خارجی بذاری.
    اما باید در زمان برنامه نویسی حتماً مقدار کریستال ذو توی پنل مربوط به مقدار کریستال درج کنی تا محاسبات نرم افراز درست باشه.
    تشکر لازم نیست!

    دیدگاه


      #3
      پاسخ : مشکل در تنظیمات تایمر

      خوب حالا جوابمو میدی دادا
      اللهم صل علی محمد و ال محمد و عجل فرجهم
      پیامبر اکرم(ص):زکات علم نشر آن است.
      در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

      دیدگاه


        #4
        پاسخ : مشکل در تنظیمات تایمر

        نوشته اصلی توسط iman-63
        سلام دادا.
        فکر کنم یه اشتباهاتی داری.
        اگه بخوای از کلاک خارجی استفاده کنی دیگه باید بهش گفت کانتر، نه تایمر. کانتر هم کارش شمارشه پالس ورودیه و ایجاد زمان.
        من فکر کنم منظور شما از کلاک خارجی همون کریستال خارجی باشه.

        در مورد نصب کریستال خارجی هم کار خاصی نداره. بعد از نصب سخت افزاری، کافیه توی فیوز بیت ها اونو روی کریستال خارجی بذاری.
        اما باید در زمان برنامه نویسی حتماً مقدار کریستال ذو توی پنل مربوط به مقدار کریستال درج کنی تا محاسبات نرم افراز درست باشه.
        خوب چی شد دادا نمی گی بهم
        اللهم صل علی محمد و ال محمد و عجل فرجهم
        پیامبر اکرم(ص):زکات علم نشر آن است.
        در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

        دیدگاه


          #5
          پاسخ : مشکل در تنظیمات تایمر

          سلام دادا.
          شما مشخص کن دقیقاً چی میخوای؟
          اگه طبق سوالی که داشتی بخوای یک زمان ns بسازی به این مثال توجه کن:

          بافرض کریستال 8mhz برای تولید زمان 0.1ms مقدار عدد تایمر چقدره؟ (با فرض N=8 ( ضریب تقسیم پالس ))

          فرکانس پالس ساعت تایمر: 8mhz/8=1mhz
          مدت زمان یک شمارش: 1/1mhz=1us
          تعداد پالس لازم برای مدت 0.1 ثانیه: 0.1ms/1us=100
          عدد لازم برای TCNT0 (تایمر): 156=100-256


          کد:
          #include <mega16.h>
          
          // Timer 0 overflow interrupt service routine
          interrupt [TIM0_OVF] void timer0_ovf_isr(void)
          {
          // Reinitialize Timer 0 value
          TCNT0=0xFF;
          // Place your code here
          
          }
          
          
          void main(void)
          {
          PORTA=0x00;
          DDRA=0x00;
          
          PORTB=0x00;
          DDRB=0x00;
          
          PORTC=0x00;
          DDRC=0x00;
          
          PORTD=0x00;
          DDRD=0x00;
          
          // Timer/Counter 0 initialization
          // Clock source: System Clock
          // Clock value: 1000.000 kHz
          // Mode: Normal top=FFh
          // OC0 output: Disconnected
          TCCR0=0x02;
          TCNT0=0xFF;
          OCR0=0x00;
          
          // Timer(s)/Counter(s) Interrupt(s) initialization
          TIMSK=0x01;
          
          
          ACSR=0x80;
          SFIOR=0x00;
          
          // Global enable interrupts
          #asm("sei")
          
          while (1)
             {
             // Place your code here
          
             };
          }

          این مثال برای 1usطراحی شده با فرض کریستال 8 مگا و تقسیم کلاک 1/8
          تشکر لازم نیست!

          دیدگاه


            #6
            پاسخ : مشکل در تنظیمات تایمر

            دادا دمت گرم
            ولی مقدار tcnt0 باید با 9c برابر باشه دیگه درسته
            بازم دستت درد نکنه
            اللهم صل علی محمد و ال محمد و عجل فرجهم
            پیامبر اکرم(ص):زکات علم نشر آن است.
            در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

            دیدگاه


              #7
              پاسخ : مشکل در تنظیمات تایمر

              سلام دادا اشتباه کردم
              فکر کردم
              اون توضیحات ربط مستقیمی به مثال داره
              دستت درد نکنه
              فعلا خداحافظ
              ما رفتیم نماز
              اللهم صل علی محمد و ال محمد و عجل فرجهم
              پیامبر اکرم(ص):زکات علم نشر آن است.
              در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

              دیدگاه


                #8
                پاسخ : مشکل در تنظیمات تایمر

                قابل نداره دادا.

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

                دیدگاه

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