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

Re: High signal Counter Kategorie: Programmierung C (von It's_ME - 24.11.2013 12:53)
Als Antwort auf Re: High signal Counter von It's_ME - 23.11.2013 9:51
Ich nutze:
C-Control Pro Mega32
> > > > >
> > > > > Hallo Leute
> > > > >
> > > > > Ich bräuchte eure Hilfe,ich möchte einen Durchflusssensor auswerten Ausgabe ist ein Rechtecksignal
> > > > > (0-5V oder 0-12V) ich will jedoch nur die positive Flanke zählen
> > > > > (z.B. nach 345 High signalen ein Relay schalten) ist aber mit einem Timer ein Problem
> > > > > weil das LOW-Signal unterschiedlich lange dauert!! Ich hab's schon versucht mit einem ganz einfachen Zähler
> > > > > das jedes mal bei einem High-Signal die Variable x um 1 erhöht wird bis 345 erreicht wird. Hat leider
> > > > > nicht wie gewĂĽnscht funktioniert!!
> > > > >
> > > > > MfG It's_ME
> > > >
> > > >
> > > >
> > > > Hallo,
> > > > Du musst nur mit einem externen Interrupt die steigenden Flanken zählen.
> > > > Im Beispiel EXT_INT ist das gut beschrieben.
> > > >
> > > > MfG Sepp
> > >
> > >
> > > Danke ja schau ich gleich rein!!
> > > Danke schon mal!!
> > >
> > > MfG It's_ME
> >
> > Hallo It's_ME,
> >
> > nach meinen Erfahrungen bringt der direkte Anschluss eines
> > Externen Gerätes an einem Interrupt-Port einige Probleme
> > mit sich. Schon alleine die Zuleitung und die Pegelanpassung.
> > Aus diesem Grund wĂĽrde ich einen Fototransistor zur
> > Ansteuerung empfehlen. Siehe "PulsCount.zip"
> >
> >  GruĂ? Torsten
>
> Danke Torsten
>
> Hab mir schon das Signal angeschaut ist ein schönes Rechtecksignal von GND auf +12V!
> aber danke für die Vorschläge!! Bin Leider noch nicht dazu gekommen!!
> MfG It's_ME


So Leute hab jzt mal was geschrieben und zusammen Kopiert!! Könnte das so in etwa funktionieren
bin ich ganz Falsch?


int cnt1;                                   // Global variables


void LED1_Strobe(void)
{
    int i,irqcnt;
    cnt1++;                                 // Increase cnt1

    if (cnt1==10)
    {
        Port_WriteBit(PORT_OUTPUT,1);   // Turn LED1 on
    }
    if (cnt1==20)
    {
        Port_WriteBit(PORT_OUTPUT,0);  // Turn LED1 off
        cnt1=0;
    }

    irqcnt=Irq_GetCount(INT_1);      // Interrupt Request Counter
}


void main(void)
{
    cnt1=0;

    Port_DataDirBit(PORT_OUTPUT,1);    // Set LED1 port to output
    Port_WriteBit(PORT_OUTPUT,0);      // Turn LED1 off
    Irq_SetVect(INT_1,LED1_Strobe);  // Define Interrupt Service Routine
    while (1);                              // Endless loop

}


    Antwort schreiben


Antworten:

Re: High signal Counter (von Torsten - 24.11.2013 16:30)
    Re: High signal Counter (von It's_ME - 25.11.2013 6:35)