PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کمک در راه اندازی تایمر



mehdiit
12-09-2010, 22:22
سلام
من با کدویژن کار میکنم
تازه میخوام کار با تایمر رو شروع کنم
ولی هر چی بیشتر میخونم،بیشتر گیج میشم:unh:
میخوام یه زمان مثلا 10 ثانیه ای رو بدست بیارم،با کریستال 16 مگ
از کجا بفهمم از چه مقدار clock valu باید استفاده کنم؟
اصلا بهتره که از تایمر 0 استفاده کنم یا 1 یا 2 ؟(هشت بیتی یا 16 بیتی؟)
ممنون

هنرفر
13-09-2010, 01:12
تا جایی که من بلدم این زمان را نمیشه مستقیم با تایمر ساخت باید از وقفه تایمرهم استفاده کنید.مثلا کلاک ولیو را روی 250 کیلو هرتز بزارید و از تایمر 1 استفاده کنید.اگر مقدار اولیه تایمر را روی 40535 بزارید بعد از اینکه تایمر به 65535 رسید سر ریز میشه و یه وقفه ایجاد می کنه اینطوری زمانی برابر با 100 میلی ثانیه ایجاد کردیم حالا اگر صد بار این عمل تکرار بشه یعنی تایمر 100 بار سرریز بشه زمانی برابر با 10 ثانیه درست میشه.

vahidasm
13-09-2010, 07:51
سلام
آقای هنرفر این مقدار اولیه ای که به دست آووردید رو میشه بگین چطوری به دست میاد؟(40535)

هنرفر
13-09-2010, 13:07
ببین فرکانس کلاک تایمر 250 کیلوهرتز هست.یعنی زمانی که طول میکشه تا تایمر یک عدد اضافه کنه برابر با 4 میکرو ثانیه است حالا اگه تایمر از صفرتا 250 شمارش کنه زمانی که طی میشه برابر با 1 میلی ثانیه میشه و اگر تا 2500 بشموره 10 میلی ثانیه و اگر تا 25000 بشموره 100 میلی ثانیه طول میکشه.من عدد65535 که تایمر در آن سر ریز میشه را منهای 25000 کردم که شد 40535 .حالا اگه تایمر از این عدد شروع کنه به شمارش بعداز امدن 25000 کلاک تایمر سرریز میشه و زمانی برابر با 100 میلی ثانیه تولید میکنه.

vahidasm
14-09-2010, 03:20
یه سوال دیگه برام پیش اومده تو کتاب آقای الوندی یه سری محاسبات انجام داده که مقدار اولیه ای برای تایمر به دست میاره که تایمر رو برای هر زمانی که میخواد تنظیم میکنه راستش من هر چی اونا رو میخونم نمیتونم چیز زیادی بفهمم
خواستم ببینم از این محاسبات شما سر درمیارین؟؟
اگه سر در میارین به منم بگین چون واقعا گیج کنندس

هنرفر
14-09-2010, 12:12
من این کتاب را ندارم.اگه میتونید محاسبات را قرار بدید تا ببینم.:hi:

vahidasm
15-09-2010, 02:19
الان کتاب دست خودم نیست
تو روزهای آینده توهمین جا میذارم

mehdiit
16-09-2010, 16:56
من یه چیزایی یاد گرفتم:o
با اجازه ی بزرگتر ها اینجا مینویسم
خواهشا اگه جائیش ایراد :baad: داره،بگید


از یک حیث دو نوع تایمر داریم:8 بیتی (timer 0) و 16 بیتی (timer 1)
در تایمر 8 بیتی ،256 پاالس لازم است تا 8 بیت پر شود و در تایمر 16 بیتی 65536 (دو بتوان 16) پالس لازم است
برای محاسبه ی مدت زمان کدویزارد کدویژن بصورت زیر عمل میکنیم

در ابتدا عدد 1 را بر clock valu تقسیم میکنیم،تا مدت زمان هر پالس را به میکرو ثانیه بدست آوریم
سپس عدد بدست آمده را در عدد 256 یا 65536 (بستگی به اینکه از کدام نوع تایمر استفاده میکنید) ضرب میکنیم،تا زمان پر شدن تممی بیتها و در نتیجه سرریز تایمر را بدست آوریم(به میکرو ثانیه)

مثال 1:مدت زمانی که با کریستال 16 مگ و با clock valu =125.000 kh بدست می آید را محاسبه کنید(از تایمر 16 بیتی استفاده میشود)

(1/125)*65536=524.288 میکرثانیه

مثال 2:در مثال قبل در صورتی که بخواهیم زمان 500 میکرو ثانیه را برای پر شدن بیت ها بدست آوریم،چه عددی باید داخل timer valu قرار دهیم؟

قبل از جواب دادن نکات زیر را بخونید
1-بصورت پیش فرض تایمر از عدد صفر شرع به شمارش میکنهولی می توان این عدد را با تغییر مقدار timer valu تغییر داد

2-عدد داخل timer valu باید به فرم hex باشه

و اما جواب:
طبق جواب مثال قبل 524.288 میکرو ثانیه طول میکشه تا 65536 پالس برا پر شدن 16 بیت انجام بشه
با تناسب زیر مشخص میشه که چند پالس لازم داریم تا 500 میکرو ثانیه برای پر شدن این 16 بیت بطول انجامد

524.288 65536
500 ?
?==>62500

حالا این عدد را از 65536 کم میکنیم ،تا مقدار timer valu را بدست آوریم
65536-62500=3036 --> به فرمت هگز -->bdc

توجه:عدد مربوط به clock valu را باید به کیلو هرتز بنویسیم

فرمول کلی: (1/clock valu)*(256 or 65536)=زمان پر شدن بیت ها به میکرو ثانیه
:125: