سلام دوستان
من یک برنامه با تایمر1 نوشتم که با زدن کلید ال ای دی هر 20 ثانیه به مدت 5 ثانیه روشن می مونه و این حالت به مدت 2 ساعت اتفاق می افته . من زمان سرریز شدن رو می خوام یک ثانیه باشه ولی از محاسباتش سر در نمیارم همینجوری یک عدد دادم لطفا راهنمایی کنید . برنامه هم کار نمی کنه توی شبیه سازی . لطفا بگید مشکل از کجاست .
$crystal = 8000000
Config Timer2 = Timer , Prescale = 128
Config Portd = Output
Config Portb = Input
Enable Interrupts
On Timer2 Ovf1
Enable Timer2
Dim T As Byte
Dim A As Byte
Dim Saat As Long
Do
If Pinb.0 = 1 Then Start Timer2
Loop
End
Ovf1:
Incr T
If T = 62 Then
T = 0
Incr A
Incr Saat
If Saat = 7200 Then Stop Timer2
If A = 20 Then
Set Pind.1
End If
If A = 25 Then
Reset Pind.1
A = 0
End If
End If
Return
من یک برنامه با تایمر1 نوشتم که با زدن کلید ال ای دی هر 20 ثانیه به مدت 5 ثانیه روشن می مونه و این حالت به مدت 2 ساعت اتفاق می افته . من زمان سرریز شدن رو می خوام یک ثانیه باشه ولی از محاسباتش سر در نمیارم همینجوری یک عدد دادم لطفا راهنمایی کنید . برنامه هم کار نمی کنه توی شبیه سازی . لطفا بگید مشکل از کجاست .
$crystal = 8000000
Config Timer2 = Timer , Prescale = 128
Config Portd = Output
Config Portb = Input
Enable Interrupts
On Timer2 Ovf1
Enable Timer2
Dim T As Byte
Dim A As Byte
Dim Saat As Long
Do
If Pinb.0 = 1 Then Start Timer2
Loop
End
Ovf1:
Incr T
If T = 62 Then
T = 0
Incr A
Incr Saat
If Saat = 7200 Then Stop Timer2
If A = 20 Then
Set Pind.1
End If
If A = 25 Then
Reset Pind.1
A = 0
End If
End If
Return
دیدگاه