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 ReturnIst 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.warum benutzt du kein else?
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.







Zitieren

Lesezeichen