مدارهایی مانند rtc به راحتی با استفاده از کریستال و تقسیم 64 فرکانس 2 هرتز رو رای میکرو به وجود میارن حالا ما با استفاده از فرکانس داخلی میرو چه جوری می تونیم با وقفه زمان یک ثانیه رو ایجاد کنیم . من نمی تونم با استفاده از code wizard این کار رو انجام بدم عدد قبول نمی کنه ممنون می شم کمکم کنید
اطلاعیه
Collapse
No announcement yet.
ایجاد زمان وقفه یک ثانیه ای برای تایمر با c
Collapse
X
-
پاسخ : ایجاد زمان وقفه یک ثانیه ای برای تایمر با c
متوجه منظورتون نی شم
حتما rtc لازم نیست فقط برای دقت زیاد rtc رو بکار می برن . اما چون کریستال داخلی میکرو قابل اعتماد زیاد نیست ، واسه همین از یه کریستال خارجی استفاده کنید بهتره
اگه منظورتون نحوه درست کردن 1 ثانیه هست میگم خدمتتون
شما با توجه به فرکانس کریستال باید عدد اولیه تایمر رو مشخص کنید (اعداد زیر فرضی هستند و اصلا وجود خارجی ندارند)
فرض کنید تایمر 1 میکرو رو می خواید استفادش کنید . و فرکانس کریستال شما 1 کیلو هرتز باشه یعنی هر 1000 تا نوسان که اتفاق بیفته 1 ثانیه می گذره . خب حالا فرض کنید تایمر 1 میکرو شما تا 600 بتونه بشمره ، واسه درست کردن این 1 ثانیه چه کار کنیم ؟
معلومه دیگه . میکرو از هر عددی که بعنوان مقدار اولیه بهش بدین شروع می کنه به شمردن تا مقدار نهاییی (600) . وقتی به 600 میرسه یک وقفه ایجاد میشه و برنامه وقفه تایمر اجرا میشه . حالا شما اگر عدد اولیه رو 100 بذارید ، هر دفعه که بخواد بشمره از 100 شروع می کنه تا 600 بعد وقفه ایجاد می شه . خب پس هر دفعه 600-100=500 تا میشمره و برای درست کردن یک ثانیه ، تایمر باید دو بار بشمره چون 2*500=1000
پس مقدار وقفه اولیه رو 100 می ذارید و توی برنامه وقفه هم یک شمارنده می ذارید که تعداد وقفه ها رو بشمره
وقتی به 2 رسید ، یک متغیر دیکه رو که همون ثانیه شماست ، یک واحد زیاد کنه
چقدر تایپ کردم
نمی دونم سوالتون همین بود یا نهDon't hesitate to ask any question ..
- تشکرها 3
دیدگاه