Hallo, ich bin gerade dabei mir einen Frequenzzähler zu bauen. Bei der Testhardware lege ich das zu messende Signal an den PinD4 eines Mega8 an, der mit 16Mhz getacktet ist. Ohne einen Teiler erreiche ich eine max. Frequenz von 5Mhz. Ich habe einen Oszillator mit 4.915200Mhz angeschloßen, und erhalte 4.917504Mhz als ergebniss. Ich würde euch bitten, mal über meinen Code zu fliegen, ob mann das ganze noch etwas besser machen kann.
Danke !!!
Code:$regfile "m8def.dat" $crystal = 16000000 Cls Cursor Off Dim Var As Word Dim Frequ As Long Config Portb = Output Config Portd = Input Config Timer0 = Counter , Edge = Rising 'Eingangssignal Config Timer1 = Timer , Prescale = 256 ' Messzeit 1 sec. On Timer0 Timer0_irq On Timer1 Timer1_irq Const Timervorgabe = 3036 Enable Timer0 Enable Timer1 Enable Interrupts Start Timer1 Start Timer0 Dim Var1 As Byte Dim Freq As Long Dim W As Long Portd.4 = 0 Do Locate 1 , 1 Lcd Frequ Waitms 60 Loop Timer0_irq: Incr Var Return Timer1_irq: Timer1 = Timervorgabe Stop Timer0 Stop Timer1 Frequ = Var * 256 Var = 0 Timer0 = 0 Start Timer1 Start Timer0 Return







Zitieren

Lesezeichen