Hallo,

ich habe hier einen Code, mit dem ich ein Drehzahlsignal auf einem LCD anzeigen lassen kann. Dieser Code ist für ein 4 Zylinder Motor gedacht. Habe aber einen 6 Zylinder. Ich verstehe den Code nicht richtig. Kann mal bitte jemand drüber sehen und mir vielleicht helfen, den auf nen 6 Zylinder umzuschreiben ?

mfg Kay

Code:
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++++++++++++++++++++                                    ++++++++++++++++++++++
'+++++++++++++++++++++     Drehzahlmesser mit einem       ++++++++++++++++++++++
'+++++++++++++++++++++       16x4 Characterdisplay        ++++++++++++++++++++++
'+++++++++++++++++++++                                    ++++++++++++++++++++++
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$regfile = "m16def.dat"                                     'AT8515 deklaration
$crystal = 16000000                                         '8,00 MHz Quarz
Dim Impulse As Byte
Dim V As Long
Dim W As Long
Dim W1 As Long
Dim W2 As Long
Dim W3 As Long
Dim Dreh As Long
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Timer1 = Timer , Prescale = 256 , Capture Edge = Rising
Config Pind.6 = Input
On Ovf1 Ontvf1
On Icp1 Oncapture
Enable Icp1
Enable Ovf1
Enable Interrupts

Portd.6 = 1
Main:                                                       '2930 * 256 = 750 ms
V = 0
W3 = 0
Impulse = 0

Cls
Cursor Off
Print " Drehzahl"
'Lcd "Drehzahl"
'Locate 2 , 1
'Lcd V
'Lcd " rpm    "

Tcnt1l = 0                                                  ' Lösche Timer1
Tcnt1h = 0
'--- Hauptprogramm -------------------------------------------------------------
Do


Loop

'--- OnCapture Funktion --------------------------------------------------------
Oncapture:                                                  'Bei 8,00 MHz Quarz
Disable Icp1
Disable Ovf1

W3 = Timer1
Timer1 = 0
W2 = W2 + W3
Incr Impulse
If Impulse = 6 Then                                         '10 Impulse Zählen damit ruhiger Zähler
W1 = W2 * 3472                                              'Taktzeit bei Presc. 256 + 7,3728 MHz
W = W1 / 60                                                 'wg. der t 34,72 us
V = 600000000 / W                                           'Dann das ganze durch 100 Teilen
                                                            '1 / W2 * 60 wird ersetzt durch
                                                            '600000000 erspart das malnehmen mit 6

Dreh = V
Locate 1 , 1
Lcd Dreh
Locate 2 , 1
'Lcd V
'Lcd " rpm     "
W = 0
W2 = 0
W3 = 0
V = 0
Impulse = 0

Else
End If
Enable Icp1
Enable Ovf1
Return

Ontvf1:                                                     'Timer1 Überlauf, bei Stillstand.
Disable Icp1                                                'Zahler auf Null setzen.
Disable Ovf1

V = 0
'Locate 2 , 1
'Lcd V
'Lcd " rpm     "
W = 0
W2 = 0
V = 0
Enable Icp1
Enable Ovf1
Timer1 = 0
Return