سلام
برنامه زير برنامه يک فرکانس متر با ميکرو در بسکام است
طرز کارشم اينطوريه که با تايمر 0 زمان 1 ثانيه ايجا ميشه و کانتر 1 در اين زمان تعداد پالسها رو ميشماره و فرکانس به دست مياد.
من توي اين برنامه يه اشکالي داشتم
متغير I چي رو نشون ميده؟؟؟ وعلت دستور I>30 چيه ؟؟
يه سوال ديگه اينکه زمان 1 ثانيه کجا ايجاد شده ؟$regfile = "m32def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.1 , Db4 = Porta.2 , Db5 = _
Porta.3 , Db6 = Porta.4 , Db7 = Porta.5
Cursor Off
Config Timer1 = Counter , Edge = Rising
Ddrb.1 = 0
Portb.1 = 1
Config Timer0 = Timer , Prescale = 1024
Enable Timer1
Enable Timer0
Enable Interrupts
On Ovf1 Pulse_counter
On Ovf0 Yazdkit
Dim A As Long , B As Byte , I As Long
B = 0
Start Timer0
Do
Loop
End
Yazdkit:
Incr I
If I > 30 Then
Stop Timer0
Cls
Home
A = B * 65536
A = A + Counter1
Lcd "frequency:"
Locate 2 , 1
Lcd A ; " HZ"
B = 0
I = 0
Counter1 = 0
Start Timer0
End If
Return
Pulse_counter:
Incr B
Counter1 = 0
Return
ممنون ميشم راهنمايي کنيد.