Hi Stevensen,
so kurze Beispielprogramme am besten direkt in den Beitrag posten und mit CODE markieren. Dadurch kann man schneller reinschaun und helfen.
Bist du wirklich sicher das die Werte ohne PRINT zu hoch sind? Könnte es nicht vielmehr sein das die Werte mit dem Print zu klein sind? Der Print Befehl über RS232 ist ja relativ langsam, dadurch könnten Impulse verloren gehen.
Überprüf das doch nochmal genau und poste auch mal die Ergebnisse/Zahlen!
Gruß Frank
Code:
$regfile = "2313def.dat"
$crystal = 4000000
$baud = 9600
Const Reload = 4000
Dim Zaehler As Word
Dim Halbe As Byte
Dim Umdrehungen As Word
Config Portd = Output
Config Timer1 = Timer, Prescale = 1024
Config Int0 = Falling 'Low Level oder Falling
Portd 0.2 = 1
Portd 0.6 = 1
On Timer1 Timer1_isr
On Int0 Onrts
Umdrehungen = 0
Zaehler = 0
Enable Int0
Enable Timer1
Enable Interrupts
Print "los gehts"
Do
Print Umdrehungen
Loop
End
Timer1_isr:
Load Timer1, Reload
Portd.5 = Not Portd.5 ' Led togglet
If Portd.5 = 1 Then
Umdrehungen = Zaehler
'Print Umdrehungen
Zaehler = 0
End If
Return
Onrts:
Incr Halbe
If Halbe = 4 Then
Halbe = 0
Portd.6 = Not Portd.6
Incr Zaehler
Print Zaehler ' !!!!! Wenn diese Print Ausgabe vorhanden ist scheint es zu gehen, wenn sie fehlt kommen zu große Zahlen.
End If
'Int0-Routine
Return
Lesezeichen