Здравствуйте!
Необходимо сделать генератор прямоугольных импульсов с возможностью регулирования частоты и длительности импульсов.
С регулировкой частоты все просто, работает. С длительностью затык. Нужно считать и сравнить значение Timer1 , но это не происходит.
Что я делаю не так?
$regfile = "m8def.dat"
$crystal = 4000000Config Pind.2 = Output
Config Portd.3 = Output
Config Portd.0 = Input : Set Portd.0
Config Portd.1 = Input : Set Portd.1
'Config Portb.3 = Input : Set Portb.3
'Config Portb.4 = Input : Set Portb.4
Config Debounce = 10Config Timer1 = Timer , Prescale = 1
Dim F As Word 'частота
Dim D As Word 'длительность
Dim T As WordF = 63104
Stop Timer1
Timer1 = FOn Timer1 Pulse:
Start Timer1Enable Interrupts
Enable Timer1Do
Debounce Pind.0 , 0 , Fup , Sub 'увеличение частоты
Debounce Pind.1 , 0 , Fdown , Sub 'уменьшение частоты
'Debounce Pinb.3 , 0 , Dup , Sub
'Debounce Pinb.4 , 0 , Ddown , Sub
T = Timer1
If T = 63232 Then
Toggle Portd.3
End IfLoop
Pulse:
Stop Timer1
Timer1 = F
Toggle Portd.2
Start Timer1
ReturnFup:
If F < 63104 Then
F = F + 128
End If
ReturnFdown:
If F > 39936 Then
F = F - 128
End If
ReturnEnd
