Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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
Ich nutze:
CC-Pro 128 Application Board
> > > 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)