سلام
من می خوام یک زمان 400 میکرو ثانیه ای ایجاد کنم .
برای محاسبه از تامیر دو استفاده کردم با مشخصات زیر:
و در اینترپت متغیر t2 را یک بار افزایش می دهم.
و در نهایت در برنامه از دستورات زیر برای ایجاد تاخیر 400 میکروثانیه ای ( و تاخیر های دیگر) استفاده می کنم:
[hr]
ولی در عمل می بینم که تاخیر 600 میکروثانیه طول می کشه.
محاسبه ی من هم اینطوری بود که
10 مگاهرتز کریستال دارم
تقسیم بر 4 میشه
تقسیم بر 1 میشه
برعکس میشه
ضربدر 25 میشه
ضربدر 2 میشه------- در نهایت میشه 20 میکرو ثانیه.که نشد :surprised:
از دوستان و مهندسان گرامی طلب راهنمایی دارم.
ممنون
من می خوام یک زمان 400 میکرو ثانیه ای ایجاد کنم .
برای محاسبه از تامیر دو استفاده کردم با مشخصات زیر:
کد:
setup_timer_2(t2_div_by_1,25,2);
و در نهایت در برنامه از دستورات زیر برای ایجاد تاخیر 400 میکروثانیه ای ( و تاخیر های دیگر) استفاده می کنم:
کد:
t2=0;
while(t2<20))
{
}
ولی در عمل می بینم که تاخیر 600 میکروثانیه طول می کشه.
محاسبه ی من هم اینطوری بود که
10 مگاهرتز کریستال دارم
تقسیم بر 4 میشه
تقسیم بر 1 میشه
برعکس میشه
ضربدر 25 میشه
ضربدر 2 میشه------- در نهایت میشه 20 میکرو ثانیه.که نشد :surprised:
از دوستان و مهندسان گرامی طلب راهنمایی دارم.
ممنون




ولی این هم جزو همون عجایبی است که خدمتتون عرض کردم. مقدار 25 را در setup_timer_2(t2_div_by_1,25,2 به 17 تغییر دادم ، همینطور به 50 و 13 تغییر دادم ولی نتیجه اصلا به اون چیزی که می خوام نزدیک نشد ، حتی یک بار میکرو با این تنظیم هنگ کرد ! یعنی اگر مقدار 13 رو براش قرار می دادم بدون اینکه به دستور تاخیر برسه ، میکرو قفل می کرد و حتی در ابتدای کارش که باید با ال سی دی و کیبورد کار کنه هم کار نمی کرد.

دیدگاه