سلام دوستان ، من مدت کوتاهیه که با الکترونیک آشنا شدم و از Bascom هم شروع کردم . قبلا کار من برنامه نویسی به زبان VisualBasic6.0 بوده . تا به حال در برنامه نویسی bascom مشکلی نداشتم تا وقتیکه به تایمر ها رسیدم اصلا متوجه نمی شم کار اونا چیه ! برای درک بهتر در زبان vb یک تایمر همراه خود یک ساب دارد که با زمانی که ما به آن میدهیم یک ساب را اجرا می کند . خوب حالا bascom هم به همین صورته یعنی ساب مخصوصی رو اجرا می کنه ؟ اصلا چه جوری کار میکنه ؟
اطلاعیه
Collapse
No announcement yet.
تایمر چیست ؟
Collapse
X
-
پاسخ : تایمر چیست ؟
خوب سوال شما خیلی کلیه
تایمر ها وظایف مختلفی میتونند داشته باشند که اصلی ترین آنها اندازه گیری زمان است . مثلا شما با یک میکرو AVR در فرکانس 1 مگ میتونی تایمر را جوری تنظیم کنی که هر یک میکروثانیه ، یک عدد اضافه بشه .
تایمر ها میتونند هنگام overflow ( گذشتن از 255 در تایمر های 8 بیتی یا 65535 در تایمر های 16 بیتی) وقفه را بکار بندازند و عمل مشخصی را درست در زمان معین برای شما انجام دهند.
مود های متنوعی هم دارند . می توانند بعنوان کانتر استفاده شوند . میتوانند بعنوان PWM استفاده شوند و .....
به نظر من شما هر جایی که متوجه نشدی سوال کن . اینطوری بهتر به نتیجه می رسید .
سوالی داشتید حتما مطرح کنید
موفق باشید.
-
پاسخ : تایمر چیست ؟
نوشته اصلی توسط hjsoftواقعا ممنونم _ مهم قسمت OverFlow بود _ خوب حالا 8بیتی یا 16 بیتی این تایمر ها رو چه جوری تشخیص بدم _ همچنین در مورد تایمر درون PWM هم توضیح بدین _ خیلی ممنون
قسمت اول را که omega جان فرمودند. 8 بیتی یا 16 بیتی بودن آن یک چیز ذاتی است و قابل تغییر نیست .
از تایمر برای تعیین فرکانس PWM استفاده می شود . ( البته Duty Cycle از جای دیگری تنظیم می شود. )
دیدگاه
-
پاسخ : تایمر چیست ؟
جناب hjsoft
$regfile = "M16DEF.DAT"
$crystal = 8000000
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1
Enable Timer1
Start Timer1
Pwm1a = 127
پایه OC1A میکرو کنترلر ، خروجی pwm شماست
فرکانس pwm از رابطه زیر بدست می آید ( در مود 8 بیتی)
(F.PWM=F.OSC/(510*Prescale
مقدار duty cycle با مقدار دهی به pwm1a تنظیم می شود (که در مود 8 بیتی میتواند بین 0 تا 255 باشد) . برای تغییر در نور led ، کافیست مقدار duty cycle را تغییر دهید.
موفق باشید
دیدگاه
-
پاسخ : تایمر چیست ؟
جناب مجید نصراله زاده واقعا من رو شرمنده کردید . مرسی از پاسخ های کامل و درست شما واقعا ممنونم !
فقط آخرین سوال رو می پرسم اونم اینه که pwm1a رو که مقدار می دیم یعنی ما چی رو برای برنامه تعریف میکنیم ! و یک سوال دیگه اینکه من بعضی جا ها دیدم که از این عبارت استفاده می کنند کاربرد آن چیست : timer1=6
دیدگاه
-
پاسخ : تایمر چیست ؟
نظر لطف شماست
شما با مقدار دهی pwm1 در واقع نسبت زمان low به high خروجی OC1A زا تغییر می دهید . با مقدار 255 ( در حالت 8 بیتی ) شما حداکثر زمان high بودن پایه را دارید و با 127 پنجاه درصد On و پنجاه درصد off و با مقدار دهی 0 شما حداقل را خواهید داشت .
دقت بفرمایید duty cycle یعنی مدت زمان high به زمان کل سیکل .
(زمان کل سیکل برابر است با مدت زمان high + مدت زمان Low ).
فرکانس شما ثابت است .
موفق باشید
دیدگاه
-
پاسخ : تایمر چیست ؟
نوشته اصلی توسط hjsoftیک سوال دیگه هم دارم ( ببخشید ) Compare a = clear down / clear up چه کاربردی دارند ؟
وقتی Compare a pwm =clear up است یعنی در حالتی که رجیستر pwm بیشترین مقدار خود را دارد خروجی oc1a شما بیشترین پهنای خود ( موج dc ) رادارد.
وقتی Compare a pwm =clear Down است یعنی در حالتی که رجیستر pwm بیشترین مقدار خود را دارد خروجی oc1a شما کمترین پهنای خود ( موج dc ) رادارد.
وقتی Compare a pwm =disconnect است یعنی خروجی oc1a شما قطع میشود
منظور از بیشترین پهنای خروجی ، مقدار زمان High بودن خروجی Pwm نسبت به کل زمان است
موفق باشید
دیدگاه
دیدگاه