اطلاعیه

Collapse
No announcement yet.

رفتار عجیب lpc2103

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

    رفتار عجیب lpc2103

    وقتی از timer0 برای ایجاد تاخیر 10 ثانیه ای استفاده می کنم بجای 10 ثانیه فقط 2 ثانیه ایجاد میشود . سورس برنامه این است :

    T0TCR=(1<<1); //Reset Timer0
    T0MR0=30000000; //Loading match register value
    T0PR=0; //Loading Prescalar register value
    T0PC=T0TC=0;
    T0MCR=(1<<0)|(1<<2); //Generates interrupt and reset on match
    T0TCR=(1<<0); //Starting Timer
    while(!(T0IR&(1<<0))); //Waiting for interrupt
    T0IR=(1<<0); //Clearing interrupt
    کریستال من 12 مگا هرتز هست و در کد فوق prescale را روی 0 گذاشته ام یعنی خود کلاک PCLK بدون پیش تقسیم برای تایمر استفاده میشود . پس بحساب من فرکانس تایمر 1/4 کل میشود 3 مگا هرتز. پس تعداد 30 میلیون کلاک با فرکانس 3مگا میشود 10 ثانیه :
    30000000* (1/3000000) = 10
    ولی چه در عمل و چه در شبیه ساز فقط 2 ثانیه میشود !! کدهای مشابه را از سایت های مختلف گرفتم باز به نظر میرسد سرعت تایمر چند برابر چیزی است که باید باشد . چرا ؟
لطفا صبر کنید...
X