Re: Programmierung Verbrauchsanzeige Kategorie: Programmierung Basic (von Klaus - 6.01.2012 11:25) | ||
Als Antwort auf Re: Programmierung Verbrauchsanzeige von Klaus - 5.01.2012 16:32 | ||
| ||
> > > 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 | ||
Antwort schreiben Antworten: Re: Programmierung Verbrauchsanzeige (von Torsten - 8.01.2012 18:12) Re: Programmierung Verbrauchsanzeige (von Klaus - 10.01.2012 13:49) Re: Programmierung Verbrauchsanzeige (von Torsten - 15.01.2012 10:26) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum