تایمرهای AVR بر خلاف 8051 Mode کاری به نام بارگذاری خودکار ندارند و شما می تونید از CTC Mode استفاده کنید. در این وضعیت با رسیدن مقدار تایمر به عدد موجود در رجیستر مقایسه (OCRx) محتوی رجیستر TCNTx صفر شده و تایمر از صفر شروع به شمارش می کند.
There is nothing so practical as a good theory. — Kurt Lewin, 1951
سلام
چرا تو این برنامه تایمر راه اندازی نمیشه و همش 0 نشون میده؟
این برنامه رو همینطوری واسه راه اندازی تایمر نوشتم
نمیدونم کجاش مشکل داره
ضمنا با 3 تا ورژن از bascom هم کامپایل کردم اما بازم تایمر همش مقدار 0 نشون میده
$regfile = "m8def.dat"
$crystal = 4000000
Config Timer1 = Timer , Prescale = 1
Enable Timer1
Start Timer1
Dim A As Integer
Do
A = Timer1
Print A
Loop
ظاهرا کسی نیست جواب منو بده :angry:
من قبلا با تایمر کار کردم، به همین صورت هم کانفیگ کردم، اما نمیدونم چرا الان تایمرم کار نمیکنه :sad:
نمیدونم مشکل از bascome یا جایی دیگه
لطفا یکی از دوستان جواب بده
متشکرم
فقط علی الحساب اینجا به جای دستور lcd از دستور print استفاده کردم که بتونم تو شبیه ساز bascom مقادیر رو ببینم
یکی از دوستان یه زحمت بکشه و برنامه رو تو bascom کپی کنه ببینه چرا تایمر همش مقدار صفر رو نشون میده
ممنون
Do
Set Portd.0
Waitms 400
Reset Portd.0
Waitms 100
Loop
End
Receive:
Stop Timer1
Reset Portd.0
A = Timer1
If A > 64000 Then
Cls
Lcd "OUT OF RANGE"
"این 2 خط جزء برنامه نیست، فقط میخوام مقادیر رو ببینم
print a
"print timer1
Goto Down
End If
Lcd " "
Home
Lcd A
Down:
Timer1 = 0
A = 0
start timer1
Return
راستی، پیشاپیش هم عید رو به همه دوستان گرامی تبریک میگم
امیدوارم که سال خوب و پر برکتی رو در پیش رو داشته باشید :nice:
دیدگاه