Probier´s mal so:
Als Ergebnis stehen Dir dann Impuls(1) bus Impuls(5) zur Verfügung.Code:$regfile = M8ref.dat $crystal = 1000000 Config Int0 = Rising 'Interrupt bei Impulsbeginn On Int0 Impuls_start Enable Int0 Config Int1 = Falling 'Interrupt bei Impulsende On Int1 Impuls_stop Enable Int1 Enable Interrupts Config Timer0 = Timer , Prescale = 8 Dim Kanal As Byte 'Kanal = Zählvariable' Dim Impuls(5) As Word 'Array für bis zu 5 Impulswerte Do 'Hier ist Platz für´s Hauptprogramm :-) Loop Impuls_start: 'Irgendein Impuls beginnt: Start Timer0 'Timer beginnt zu zählen Kanal = Pinc 'An welchem Port ist der Impuls? Kanal = Kanal And &B00011111 'Sicherheitshalber Löschen der Bits 7, 6 und 5 Select Case Kanal Case 4 : Kanal = 3 'd.h. PortC war 00000100 Case 8 : Kanal = 4 'd.h. PortC war 00001000 Case 16 : Kanal = 5 'd.h. PortC war 00010000 Case Else End Select Return Impuls_stop: 'Ende des Impulses: Stop Timer0 'Timer anhalten, Impuls(kanal) = Timer0 'Wert retten und Array-Variabler zuweisen, Timer0 = 0 'und Timer rücksetzen. Impuls(kanal) = Impuls(kanal) * 8 'Umrechnung in µS Return
Gruß,
Daniel







Zitieren

Lesezeichen