Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > Hallo, > > > > > > > > ich will versuchen, mit einem Druchflusszähler mit Reedkontakt, > > > > den aktuellen Öl-Verbrauch ( l/h ) bei einem BHKW zu ermitteln. > > > > Als Hardware wird aktuell ein Applicationboard mit der Mega 128 verwendet. > > > > Die Programmierung der Anzeige und die Umrechnung der ermittelten > > > > Werte in Basic sind nicht das Problem. > > > > Ich bin mir aber nicht sicher, wie ich den Zählerimpuls ( ca. alle > > > > 2 - 3 Sek ein Impuls ) einlesen sollte. > > > > Evtl als eigener Thread oder als Interrupt? > > > > Wie kann die Zeit zwischen zwei Impulsen am sinnvollsten ermittelt werden? > > > > > > > > Grüße > > > > > > > > Klaus > > > > > > > > > Hallo Klaus, > > > hast du pro Impuls eine gewisse Menge, z.B. 1 Liter pro Impus? > > > -> dann Impulszähler > > > Oder wird die Menge mit einer Impulslänge übertragen? > > > -> dann Pulsperiodenmessung > > > In beiden Fällen könntest du einen Timer im Interruptbetrieb verwenden. > > > > > > Gruß Torsten > > > > > > Hallo Torsten, > > > > pro 0.00125 l gibt der Zähler einen Impuls aus. > > Kann ich mit dem Timer die Zeit zwischen 2 Impulsen messen, > > oder die Anzahl der Impulse in einem festen Zeitbereich? > > > > Gruß > > > > Klaus > > Hallo, > > ich habe versucht, die Dauer zwischen 2 Impulsen mit dem > Timer2 zu ermitteln, der durch den Interrupt Int0 wieder > zurückgesetzt wird. > Ist dies der richtige Ansatz, oder sollte die Zeit zwischen > 2 Impulsen anders ermittelt werden? > > Grüße Klaus > > Dim cnt As Single > Dim hun_Sek As Single > Dim Sekunde As Single > Dim OldZeit As Word > Dim flag As Byte > Dim Imp As Single > Dim Imp_Hour As Single > > Sub main() > cnt = 0 > hun_Sek = 0 > Sekunde = 0 > Imp = 0.00125 > Imp_Hour = 0.0 > Port_DataDirBit( 24,0 ) > Port_WriteBit( 24, 1 ) > Irq_SetVect( INT_0, IRQ ) > Ext_IntEnable( 0, 0 ) > Irq_SetVect(INT_TIM2COMP,INT_10ms) > Do While True > If flag = 1 Then > Sekunde = hun_Sek / 100 > Imp_Hour = 3600 / Sekunde > Imp_Hour = Imp_Hour * Imp > Msg_WriteText( "L/h: " ) > Msg_WriteFloat( Imp_Hour ) > Msg_WriteChar( 10 ) > Msg_WriteChar( 13 ) > Sekunde = 0 > flag = 0 > End If > End While > > End Sub > > Sub IRQ() > Dim irq As Word > If cnt > 20 Then > hun_Sek = cnt > cnt = 0 > flag = 1 > End If > irq = Irq_GetCount(INT_0) > End Sub > > Sub INT_10ms() > Dim irqcnt As Integer > cnt = cnt+1 > irqcnt=Irq_GetCount(INT_TIM2COMP) > End Sub