Hallo

Seltsam, mein Bascom (Demo 1.11.9.8) schluckt das anstandslos. TCNT2 funktioniert bei dir ja auch. Hier eine Variante in der TCNT1 durch TIMER1 ersetzt ist:

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 Takt3 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
Timer1 = 65280                                             '16Bit! 65536-256
Enable Timer1
On Timer1 Timer_eins
'---------------------------------------
' Timer 2
Config Timer2 = Timer , Prescale = 8
Tcnt2 = 6                                                   'nach 250 Zählschritten folgt der Interrupt
Enable Timer2
On Timer2 Timer_zwei

Enable Interrupts

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

Waitms 300
Loop


'------------------------------ D I S P L A Y - A N Z E I G E -----------------
Anzeige:
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:
Timer1 = Timer1 + 65283                                     '16Bit! 65536-256+3
Toggle Porta.7                                              ' Led Blau
Takt2_temp = Takt2_temp + 1
Return

'--------------------------------- T I M E R - 2 ------------------------------
'Die Werte werden jede 1/2 Sekunde ausgelesen. Das Setup des Timers sieht so aus:
'1MHz mit Prescaler/8 ergibt 125000 Timertakte pro Sekunde. Das Zählregister startet
'mit 6, nach 250 Schritten erfolgt der Interrupt. Das ergibt 125000/250=500 Interrupts
'pro Sekunde.Nach 250 Interrupts werden dann die Werte eingelesen und zurückgesetzt.
'Die Frequenzkorrektur berücksichtigt auch die Takte, die schon gezählt wurden und
'entfernt zusätzliche 3 Takte für Laden, Berechnen und Speichern des TCNT2-Wertes.
Timer_zwei:
Tcnt2 = Tcnt2 + 9                                           'Frequenzkorrektur (256-6-3)
If Takt3 < 250 Then                                         'solange Takt3 kleiner 250
   Takt3 = Takt3 + 1                                        'Takt3 erhöhen
Else                                                        'die 1/2 Sek. vorbei
   Takt3 = 0                                                'Takt3 reseten
   Takt1 = Takt1_temp                                       'Zähler auslesen
   Takt1_temp = 0                                           'und reseten
   Takt2 = Takt2_temp
   Takt2_temp = 0
End If
Return
'------------------------------------------------------------------------------
Ich bin halt leider nicht so sehr der Bascom-Profi :(

Gruß

mic