moin
07.01.2007, 08:12
Hallo,
Mein Programm soll später mal ein Frequenzzähler werden.
Mit Timer0 wird ein Zeitfenster vorgegeben in dem die Impulse gezält werden.
Wenn ich TTL-Impulse von einem Tongenerator einspeise (ATMEGA8 PD5 T1) erhalte ich keine Reaktion.
Wo liegt mein Fehler?
'Dieses Programm soll mal ein Frequenzzähler werden, wenn es groß ist ;-)
'Mit Timer0 wird später ein Zählfenster von einer Sek eingestellt.
'Mein Problem ist, dass ich imPulse die ich an T1 (PD5) anlege
'nicht zählen kann. Ich erhalte immer 0 ??????
'Wo ist mein Fehler?
$regfile = "m8def.dat"
$crystal = 16000000
$baud = 38400
Dim Var1 As Byte
Dim Freq As Long
Dim W As Long
Print "hallo" 'zum Überprüfen der Verbindung
Config Portb = Output
Config Portd = Input
Config Timer1 = Counter , Edge = Rising , Prescale = 1
Enable Timer1 'Counter1 Einstellungen
On Timer1 Pulses
Enable Interrupts
Timer1 = 0
Config Timer0 = Timer , Prescale = 1024 'Konfiguriere Timer0
Enable Timer0 'Torzeit für Messung
On Timer0 Sek
Enable Interrupts
Timer0 = 9
Do
'....Hauptprogramm
Loop
End
'Interruptroutinen Von Timer0 Und Counter1
Sek:
Incr Var1
If Var1 = 2 Then
Freq = W + Timer1
Var1 = 0
Timer0 = 0
Toggle Portb.1
Print Freq
Print W
End If
Return
Pulses:
W = W + 65536
Print "W"
Print W
Return
Mein Programm soll später mal ein Frequenzzähler werden.
Mit Timer0 wird ein Zeitfenster vorgegeben in dem die Impulse gezält werden.
Wenn ich TTL-Impulse von einem Tongenerator einspeise (ATMEGA8 PD5 T1) erhalte ich keine Reaktion.
Wo liegt mein Fehler?
'Dieses Programm soll mal ein Frequenzzähler werden, wenn es groß ist ;-)
'Mit Timer0 wird später ein Zählfenster von einer Sek eingestellt.
'Mein Problem ist, dass ich imPulse die ich an T1 (PD5) anlege
'nicht zählen kann. Ich erhalte immer 0 ??????
'Wo ist mein Fehler?
$regfile = "m8def.dat"
$crystal = 16000000
$baud = 38400
Dim Var1 As Byte
Dim Freq As Long
Dim W As Long
Print "hallo" 'zum Überprüfen der Verbindung
Config Portb = Output
Config Portd = Input
Config Timer1 = Counter , Edge = Rising , Prescale = 1
Enable Timer1 'Counter1 Einstellungen
On Timer1 Pulses
Enable Interrupts
Timer1 = 0
Config Timer0 = Timer , Prescale = 1024 'Konfiguriere Timer0
Enable Timer0 'Torzeit für Messung
On Timer0 Sek
Enable Interrupts
Timer0 = 9
Do
'....Hauptprogramm
Loop
End
'Interruptroutinen Von Timer0 Und Counter1
Sek:
Incr Var1
If Var1 = 2 Then
Freq = W + Timer1
Var1 = 0
Timer0 = 0
Toggle Portb.1
Print Freq
Print W
End If
Return
Pulses:
W = W + 65536
Print "W"
Print W
Return