Здравствуйте, товарищи! Помогите с проблемой- в Протеусе всё работает, а в железе показывает "freq: 20" и всё...
$regfile = "m8def.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32
' óêàçûâàåì êîíôèãóðàöèþ ïîäêëþ÷åíèÿ äèñïëåÿ ê ïîðòàì ÌÊ
Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3
Config Lcd = 16 * 1 ' òèï èñïîëüçóåìîãî äèñïëåÿ
'íàñòðàèâàåì òàéìåð â ðåæèì çàõâàòà ïî âîñõîäÿùåìó ôðîíòó
Config Timer1 = Timer , Prescale = 64 , Capture Edge = Rising
Dim Timercounter As Word
Dim Period As Single ' ïåðèîä èçìåðÿåìîãî ñèãíàëà
Dim F1 As Single
Dim F As Word ' ïåðåìåííàÿ äëÿ õðàíåíèÿ çíà÷åíèÿ ÷àñòîòû
Const T = 0.000004 ' ïðèìåðíîå âðåìÿ â ñåêóíäàõ çà êîòîðîå çíà÷åíèå
' ñ÷åò÷èêà óâåëè÷èâàåòñÿ íà 1
On Capture1 Zaxvat
Timercounter = 0
Waitms 50
Enable Interrupts
Enable Capture1
Cursor Off
Do ' ãëàâíûé öèêë ïðîãðàììû
If Timercounter = 0 Then ' ïðîâåðêà çíà÷åíèÿ ïåðåìåííîé
F = 0 ' åñëè 0, òî ÷àñòîòà òîæå 0
Else ' â îáðàòíîì ñëó÷àå âûñ÷èòûâàåì ÷àñòîòó
Period = Timercounter * T ' îïðåäåëÿåì ïåðèîä
F1 = 1 / Period ' ñ÷èòàåì ÷àñòîòó
F = Abs(f1) ' îêðóãëÿåì äî öåëîãî
End If
'âûâîäèì ïîêàçàíèÿ íà äèñïëåé
Cls
Lcd "Freq: " ; F ; " Hz"
Waitms 100
Loop
Zaxvat:
Timercounter = Timer1 ' êîïèðóåì çíà÷åíèå òàéìåðà â ïåðåìåííóþ
Timer1 = 0 ' îáíóëÿåì òàéìåð
Return
End