Hi @all
habe ein kleines Problem. Ich habe einen impulsgeber in einer fertigen Schaltung an dem ext. Int0 hängen. hier werden die reinen impulse hochgezählt. Jetzt möchte ich zusätzlich die Zeit messen die zwischen den Impulsen vergangen ist. Der Int0 ist auf fallende Flanke komfiguriert. Pulsein geht ja nicht, weil ich die Dauer zwischen den impulsen messen will und nicht die Breite des impulses.
Ich möchte die Messung mit dem Timer1 machen. Aber wie bringe ich das hin, das bei der fallenden flanke der timer1 startet und bei der nächsten fallenden Flanke der Timer1-Wert ausgelesen wird und wieder auf 0 gesetzt ird und sofort wieder bei der nächsten fallenden Flanke das Spiel von vorne los geht???
Bei meinem Code kann ich zwar den Timer im Int0 auslesen, aber beim ersten Impuls stimmen die Werte nicht und wenn kein Impuls kommt habe ich immer nur den alten wert.
Nen Tip?
Code:$regfile = "m8def.dat" $crystal = 7372800 $baud = 9600 $lib "i2c_twi-slave.lbx" Dim Impcount As Word Dim Impulse As Long Dim Imp_time As Word Config Int0 = Falling Config Pind.2 = Input 'Int0 bei Mega8 Portd.2 = 1 Config Pinc.0 = Output 'status LEDs Config Pinc.1 = Output Config Scl = Portc.5 'i2c Comm. Config Sda = Portc.4 Config Twislave = &H40 , Btr = 2 , Bitrate = 100000 Config Timer1 = Timer , Prescale = 64 Const Timervorgabe = 54016 Enable Timer1 Enable Interrupts Enable Int0 Impcount = 0 Impulse = 0 On Int0 Irq0 Do Portc.1 = 1 '** mach irgendwas**** Portc.1 = 0 Loop '----------------------------------------------------------- '-------------------------------- Twi_stop_rstart_received: Return '-------------------------------- Twi_addressed_goread: Return '-------------------------------- Twi_addressed_gowrite: Return '-------------------------------- Twi_gotdata: Return '-------------------------------- Twi_master_needs_byte: Portc.0 = 0 Select Case Twi_btr Case 1 : Twi = Low(impcount) Case 2 : Twi = High(impcount) End Select Print "Timerwert:" ; Impcount ; "Impulse:" ; Impulse 'testzwecke Portc.0 = 1 Return '-------------------------------- Twi_master_need_nomore_byte: Return '-------- IrQ ---------------- Irq0: Portc.1 = 0 Imp_time = Timer1 Timer1 = 0 Impcount = Imp_time Incr Impulse Portc.1 = 1 Return End
Lesezeichen