سلام
من با AT91SAM7X256 کار میکنم
و با کامپایلر IAR
می خواهم یه تابع تاخیر بنویسم(یه چیزی مثل تابع کتابخونه AVR-GCC)
من با استفاده از دستورات زیر کلاک میکرو را روی 48 مگا هرتز تنطیم میکنم
بعد می خواهم یک تاخیر فرضا 1 ثانیه ایجاد کنم
پس تابعی به این صورت می نویسم :nerd:
ولی این تاخیر خیلی کمتر از 1 ثانیه است
من با نوشتم کد زیر حدود 0.2 ثانیه تاخیر میگیرم
چرا ؟
کجای کار من اشتباه است؟
من با AT91SAM7X256 کار میکنم
و با کامپایلر IAR
می خواهم یه تابع تاخیر بنویسم(یه چیزی مثل تابع کتابخونه AVR-GCC)
من با استفاده از دستورات زیر کلاک میکرو را روی 48 مگا هرتز تنطیم میکنم
کد:
*AT91C_CKGR_MOR = 0xF01; *AT91C_CKGR_PLLR = 0x2903FFC; *AT91C_PMC_MCKR = 0x3; *AT91C_PMC_SCER = 0x1;
پس تابعی به این صورت می نویسم :nerd:
کد:
void delay(void){
unsigned long m , n;
unsigned long MCKLCD=48054857;
for (m=0;m <MCKLCD;m++);
}
من با نوشتم کد زیر حدود 0.2 ثانیه تاخیر میگیرم
کد:
void delay(void){
unsigned long m , n;
for (n=0;n<1000000;n++)
for (m=0;m <MCKLCD;m++);
}
کجای کار من اشتباه است؟







دیدگاه