Upps , hab Hi und Lo vertauscht.
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 = Lo And Portd.2 = 1 Then
Portb.2 = 0
Timer1 = 65531
Zeit = 0
End If
If Zeit = Hi And Portd.2 = 0 Then
Portb.2 = 0
Timer1 = 65531
Zeit = 0
End If
Return
warum benutzt du kein else?
Ist doch einfach, wenn ich ein else benutzen würde, würde bei JEDEM Interrupr der port verändert, die Zeit auf null und der Timer auf 65531 gesetzt, und das DARF ned sein.
Oszi?
Ganz einfach Hi und lo auf 1 setzen ( ergibt 0,5 Mhz ) und timervorgabe so lange verändern, bis man am oszi eine Frequen von 500kHz misst.
Lesezeichen