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 | ||
| ||
> > > > > > > > > > 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) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum