سلام دوستان.
قبلاً توکدویژن با تایمر0 1 ثانیه دقیق تولید کردم.اما می خوام با بسکام اینکارو انجام بدم لطف کنید اون قطعه کدی که لازم هست رو بزارید.البته با تنظیمات احتمالی.متشکر
باید با استفاده از تایمر 2 این کار رو بکنی؛
کد:
Config Timer2 = Timer , Async = On , Prescale = 128
تو سخت افزار هم باید به میکرو یه کریستال ساعت وصل کنی
(۰۵-بهمن-۱۳۹۱, ۱۲:۰۶:۲۸)r0b0 نوشته است: [ -> ]باید با استفاده از تایمر 2 این کار رو بکنی؛
کد:
Config Timer2 = Timer , Async = On , Prescale = 128
تو سخت افزار هم باید به میکرو یه کریستال ساعت وصل کنی
توکدویژن بدون کریستال وقتی ثانیه رو ایجاد می کنه میریزه تویه متغییر و هرجایی بخوایم میشه استفاده کرد. اینجا چی؟ راهی نداره که بدون کریستال تولیدش کرد؟
رو شبیه ساز و برنامه احتیاج نیست، فقط تو سخت افزار باید کریستال و بذاری
یه سوال در مورد وقفه ها:
int0 که 1 (حساس به لبه پایین)هست میاد 0 میشه و برنامه پرش میکنه به یک برچسب, یک سری کارهارو انجام میده و بعد برمیگرده بالای برنامه, در این لحظه int0 همچنان 0 هست،می خوام بدونم که بازم هم پرش می کنه به برچسب یا فقط وقتی پرش می کنه که حتماً از 1 به 0 بره.؟
نه دیگه هر موقع از یک به صفر بره زیر برنامه ی وقفه رو اجرا می کنه
دوستان ببینید این چه مشکلی داره؟
می خوام با امدن وقفه 0 تایمر 1 شروع کنه به شمارش.
نمی خوام زیاد دقیق باشه فقط یه چیزی که برام شمارش کنه.
r0b0 جان این کد میاد شروع می کنه یکی یکی به x با فاصله های منظم( هرچند ال سی دی اینطورنشون نمیده) اضافه می کنه.اما در حالی که انتظار دارم وقفه صفر بیاد و x رو صفر کنه اینطور نمیشه.مشکل از کجاست؟ اصلاً مثل اینکه وقفه صفر هیچ وقت فعال نمی شه!
کد:
$regfile = "m16def.dat"
$crystal = 4000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pina.2 , Db5 = Pina.3 , Db6 = Pina.4 , _
Db7 = Pina.5 , Rs = Pina.0 , E = Pina.1
Config Pind.2 = Input
Enable Interrupts : Config Int0 = Falling : On Int0 D
Config Timer1 = Timer , Prescale = 8
Enable Timer1
On Timer1 Full
Dim Sumcunt As Word , Flag1 As Byte , X As Word
Main:
Cls : Lcd X
Goto Main
D:
X = 0
'Waitms 10
Return
Full:
Incr X
Return
خداروشکر درست شد, انشاا.. تکمیل شدش رومیزارم.