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