اطلاعیه

Collapse
No announcement yet.

timer با دقت میکرو ثانیه

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

    timer با دقت میکرو ثانیه

    با سلام
    من نیاز به ایجاد تایمر با دقت میکرو ثانیه دارم.
    این مثال را انداختم lpc17xx.cmsis.driver.library\Examples\RIT
    اما مشکلم اینه که زیر 1ms کار نمیکنه!!!
    ممکنه یه نمونه برنامه برای 10us بهم بدین یا راهنمایی کنین.
    ممنون.



    --
    این برنامه یه پالس به طول 1ms روی پین p2.2 هدر برد lpc1768 ایجاد میکند:
    http://s3.picofile.com/file/8206450676/eimBesm2.rar.htm

    #2
    پاسخ : timer با دقت میکرو ثانیه

    سلام،
    با تایمرهای میکرو میتونی به راحتی هر چند میکرو ثانیه که خواستی را بندازی !
    من یه مثال با lpc1788 برات میذارم

    کد:
    main()
    {
    //PINSEL_ConfigPin(1,28,3);
    LPC_IOCON->P1_28 |=(3);
    LPC_TIM0->PR=120;
    LPC_TIM0->MCR=(1<<1);
    LPC_TIM0->MR0=500;
    LPC_TIM0->EMR=(3<<4);
    LPC_TIM0->TCR=(1<<0);
    while(1)
    	{
    		
    	}
    }

    دیدگاه


      #3
      پاسخ : timer با دقت میکرو ثانیه

      تو این مثال رجیستر PR تقسیم کننده فرکانس cpu هستش که اینجا فرکانس 120 مگاهرتزه که تقسیم بر 120 میشه و با این کار فرکانس تایمر 1 مگاهرتز میشه یعنی هر شمارش تایمر(از 0 به 1 و ...) 1 میکروثانیه طول میکشه !
      و هر موقع تایمر به 500 برسه (500 میکروثانیه بعد) پایه match رو toggle میکنه !

      دیدگاه


        #4
        پاسخ : timer با دقت میکرو ثانیه

        سلام
        ممنون از مثال، ممکنه بهم بگی حداکثر سرعتی که تایمر lpc1768 میتونه اینتراپت بده چقدره؟

        دیدگاه


          #5
          پاسخ : timer با دقت میکرو ثانیه

          مثلاً اگه فرکانس cpu رو 120 مگاهرتز در نظر بگیری، تایمر میتونه تا حدود 8.4 نانو ثانیه رو بشمره !

          **** 1 روی فرکانس 120 میشه حدود 8.4 نانوثانیه ****

          دیدگاه


            #6
            پاسخ : timer با دقت میکرو ثانیه

            نوشته اصلی توسط م.پورجبار
            مثلاً اگه فرکانس cpu رو 120 مگاهرتز در نظر بگیری، تایمر میتونه تا حدود 8.4 نانو ثانیه رو بشمره !

            **** 1 روی فرکانس 120 میشه حدود 8.4 نانوثانیه ****
            میتونه با همین سرعت یه پین تایگل کنه؟
            چون من زیر 1.2 میکرو ثانیه نتونستم باهاش پین روشن و خاموش کنم.
            کد:
            int main(void)
            {
              LPC_TIM0->TCR = 0x02;    /* reset timer */
              LPC_TIM0->PR = 0x10;   
              LPC_TIM0->MR0 = 1;
              LPC_TIM0->IR = 0xff;    /* reset all interrrupts */
              LPC_TIM0->MCR = 0x03; 
              NVIC_EnableIRQ(TIMER0_IRQn);
              LPC_TIM0->TCR = 0x01;    /* start timer */
            		
              FIO_SetDir(2,(1<<2),1);
            
            		while(1);
              return 0;
            }
            
            void TIMER0_IRQHandler(void)
            {
              LPC_TIM0->IR = 0x01;   
            	
            		if(LEDStatus == ENABLE)
            	{
            		LEDStatus = DISABLE;
            		GPIO_ClearValue(2,(1<<2));
            	}
            	else
            	{
            		LEDStatus = ENABLE;
            		GPIO_SetValue(2,(1<<2));
            	}
            	temp++;
            }

            دیدگاه


              #7
              پاسخ : timer با دقت میکرو ثانیه

              نوشته اصلی توسط KHOSMAR2
              میتونه با همین سرعت یه پین تایگل کنه؟
              چون من زیر 1.2 میکرو ثانیه نتونستم باهاش پین روشن و خاموش کنم.
              این زمان رو چجوری اندازه گیری کردید ؟
              إِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
              کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)

              دیدگاه


                #8
                پاسخ : timer با دقت میکرو ثانیه

                سلام،
                سرعت سوییچ پایه ها انقدر زیاد نیست که بشه در حد نانو ثانیه رو دید!
                حداکثر سرعت در حد 5-6 مگاهرتز فکر کنم بیشتر نشه روی پایه های GPIO درست کرد!
                هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...

                دیدگاه


                  #9
                  پاسخ : timer با دقت میکرو ثانیه

                  نوشته اصلی توسط " سید محمد "
                  این زمان رو چجوری اندازه گیری کردید ؟
                  احتمالا به اسکوپ وصل کردن دیدن!
                  هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...

                  دیدگاه


                    #10
                    پاسخ : timer با دقت میکرو ثانیه

                    ببخشید سوالم خیلی بی ربطه و اصلا ارتباطی با تاپیک نداره .

                    اسکوپ های تو بازار تا چه فرکانسی رو میتونن اندازه گیری کنن ؟

                    پایه های gpio چند کلاک طول میکشه از سطح صفر برن به سطح یک ؟
                    إِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
                    کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)

                    دیدگاه


                      #11
                      پاسخ : timer با دقت میکرو ثانیه

                      اسکوپ های معمولی و رایج بازار 20 مگا هرتز هستن اما اسکوپ تا رنج گیگاهرتز هم وجود داره.

                      چند کلاک طول میکشه رو نمی دونم جایی هم ندیدم
                      اما با تست عمل دیدم اگر پشت سرهم پایه هارو 0 و 1 کنم فرکانسش حدود 5-6 مگاهرتز میشه!
                      هر انسانی که احساس بی نیازی کند سرکش و طغیان گر می شود...

                      دیدگاه

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