1. Du hast vergessen die Zeit zu reseten
2. Nimm Toggle ( If schlaufe frisst zu viel zeit )
3. Deine Frequ = Hi, Lo then ... frisst auch zu viel zeit
4. ich hab dir den code mal verändert und für die If und incr usw mock ein paar clocks mehr gegeben.
Hast du ein Oszi? Zum kalibrieren?
ICQ?
Code:
$regfile = "2313def.dat"
$crystal = 10000000
$baud = 9600
Dim Hi As Byte
Dim Lo As Byte
Dim Freq As Byte
Dim Zeit As Byte
Config Pind.2 = Output
Config Timer1 = Timer , Prescale = 1
Enable Interrupts
On Timer1 Icnr
Enable Timer1
Timer1 = 65531
Do
Input "High x mal 1us: " , Hi
Input "Low x mal 1us: " , Lo
Loop
Icnr:
Incr Zeit
If Zeit = Hi And Portd.2 = 1 Then
Portb.2 = 0
Timer1 = 65531
Zeit = 0
End If
If Zeit = Lo And Portd.2 = 0 Then
Portb.2 = 0
Timer1 = 65531
Zeit = 0
End If
Return
Lesezeichen