mal das test programm:
hab noch n fehler entdeckt. Eingang hochgezogen und benutze ind. Näherungsschalter, der ein 1 signal bei betätigung liefert. werd das erstmal beheben..Code:$regfile = "m8def.dat" $crystal = 3686400 'ext. Quarz Config Lcd = 16 * 2 'LCD-Typ Config Lcdmode = Port 'Ports zur Ansteuerung benutzt Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 On Icp1 Oncapture 'Port B0 ist Interupt Dim Wcapture As Word Dim Stopuhr As Word Ddrb.0 = 0 'Eingang B0 Drehzahl Ddrb.1 = 1 'Ausgang B1 LED 6000U/min Ddrb.2 = 0 'Eingang B2 KIPS Ddrb.3 = 0 'Eingang B3 LCD normal/einfrieren Portb.0 = 1 'Eingang hochziehen Portb.1 = 0 'Ausgang LED Portb.2 = 1 'Eingang hochziehen Portb.3 = 1 'Eingang hochziehen Dim Merker As Bit 'Selbsthaltung KIPS Eingang B Dim Timerword As Word 'Rückwärtszähler als Timer Timerword = 15000 Tccr1a = &B00000000 'Timer1 Register A Tccr1b = &B10000101 'Timer1 Register B Bit7:noise cancel, Bit6: fall.Flanke Timsk.ticie1 = 1 'Capture IR ein Sreg.7 = 1 'IR global ein Main: If Pinb.2 = 0 Then 'KIPS Stellung Set Merker 'Selbsthaltung Set Portb.1 'Test Ausgang End If If Merker = 0 Then 'Timer LCD Anzeige Decr Timerword End If If Timerword = 10000 Then Cls 'Display löschen Lcd Wcapture 'neuen Wert in Display schreiben End If If Timerword = 10000 Then Timerword = 15000 End If Goto Main Oncapture: Timer1 = Timer1 - Capture1 Wcapture = Capture1 'Anz in 1/100s Wcapture = 10000 / Wcapture 'Anzeige in Zehntel Hz Wcapture = Wcapture * 6 'Anzeige in U/min 'If Wcapture > 6000 Then 'LED an über 6000U/min 'Set Portb.1 'End If Return End






Zitieren

Lesezeichen