So vielleicht?

Code:
' Display an folgenden Ports
' Enable = Port C.4
' RS = Port C.5
' DB7 = Port C.7
' DB6 = Port C.6
' DB5 = Port C.3
' DB4 = Port C.2
'
' Leds an folgenden Ports
' Grün an A.0
'
$regfile "m32def.dat" 'Definiert den Atmega als Atmega 32
$crystal = 1000000 'Gibt die Quarzfrequenz an in Herz
$hwstack = 32 'Default use 32 for the hardware stack
$swstack = 10 'Default use 10 for the SW stack
'-------------------------------------------------------------------------------
' Konfiguration fürs Display
Config Lcd = 16 * 2 'definiert das LCD Display in Art und Größe
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.6 , Db7 = Portc.7 , Rs = Portc.5 , E = Portc.4

'------------------------------------------------------------------------------
' Variablen
Dim Takt1 As Word
Dim Takt2 As Word
Dim Takt1_temp As Word
Dim Takt2_temp As Word
'------------------------------------------------------------------------------

Portb = &B00011110 ' Pull Up setzen für Pin B1
Ddra = &B11111111 ' Pin A.7 als Ausgang setzen für blaue Led
'------------------------------------------------------------------------------
' Timer 0
Config Timer0 = Timer , Prescale = 1024
Enable Timer0
On Timer0 Timer_null
'---------------------------------------
' Timer 1
Config Timer1 = Timer , Prescale = 64
Enable Timer1
On Timer1 Timer_eins

Enable Interrupts

Cls
'------------------------- H A U P T P R O G R A M M --------------------------
Do
Gosub Anzeige

Waitms 500
Loop


'------------------------------ D I S P L A Y - A N Z E I G E -----------------
Anzeige:

Disable Interrupts
Takt1 = Takt1_temp
Takt1_temp = 0
Takt2 = Takt2_temp
Takt2_temp = 0
Enable Interrupts

Cls
Locate 1 , 1
Lcd "Takt1" ; Takt1
Lcd "Takt2" ; Takt2
Return

'--------------------------------- T I M E R - 0 -----------------------------
Timer_null:
Toggle Porta.0 ' Led Grün
Takt1_temp = Takt1_temp + 1
Return

'--------------------------------- T I M E R - 1 ------------------------------
Timer_eins:
Toggle Porta.7                                              ' Led Blau
Takt2_temp = Takt2_temp + 1
Return
'------------------------------------------------------------------------------
(ungetestet)

Die Zählerstände werden alle 0,5 Sekunden angezeigt und auf null gesetzt. Da jeder Aufruf der Interruptroutinen gezählt wird, sollte das Display so direkt die Frequenz in Hz anzeigen.

Beim Lesen der 16-Bit Zählerstände werden die Interrupts kurz gesperrt. Das könnte zusammen mit der (Un-)Genauigkeit von Waitms 500 zu einem kleinen Messfehler führen.

Gruß

mic