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







Zitieren

Lesezeichen