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

Re: Zeitmessung für INT_1 Zyklus Kategorie: Programmierung C (von Mansfeld - 13.05.2010 18:10)
Als Antwort auf Re: Zeitmessung für INT_1 Zyklus von mgolbs - 27.11.2009 13:04
Ich nutze:
Pro-Bot128
> > > > > Hallo,
> > > > >
> > > > > ich will über ein externes Signal und INT_1 die Zykluszeit messen. PS auf 8bit im Frequenzbereich
> > > > > sind berechnet. Timer_T0GetCNT() und Timer_T0CNT() sollte dieses bewirken. Leider scheitert es wohl
> > > > >  an:
> > > > > Diese Funktion initialisiert den Counter0. Der Counter0 wird bei einer positiven Signalflanke an
> > > > > Eingang Mega32:T0 (PIN1) inkrementiert.
.
> > > > >
> > > > > Wie kann ich die Zeit eines INT_1 Zyklus prinzipiell messen?
> > > > >
> > > > > �ber Tipps und Infos wäre ich sehr dankbar.
> > > > >
> > > > >
> > > > > GruÃ? Markus
> > > >
> > > >
> > > > Hallo Markus,
> > > >
> > > > ich habe einen bei einem UTI Baustein die Pulse mit dem 128 über die Capture Compare unit eingelesen.
> > > > Diese ist interruptgesteuert.
> > > > Beim Mega32 wäre es soviel ich gesehen habe der Anschlu�port D.6 -> ICP -> Leuchtdiode;
> > > > Input Capture Pin für Puls/Periodenmessung.
> > > >
> > > > GruÃ? Josef
> > >
> > > Hallo,
> > >
> > > danke für die Info. Die Funktion Capture Compare bietet also die Möglichkeit die Zeit zwischen
> > > zwei z.B. Int_1 zu messen?
> > >
> > > GruÃ? Markus
> >
> > Hallo Markus
> >
> > du mu�t auf den Eingang ICP gehen. Das ist der Eingang für die Capture
> > compare unit. Gib im Hilfemenü ICP ein, dann kannst dir ein Beispiel ansehen. ICP ist interruptgesteuert.
> >
> > GruÃ? Josef
>
> Hallo,
>
> danke für den Tipp. Bis jetzt verstehe ich zwar noch gar nichts :-), aber am Beispiel wird das bestimmt
> besser.
>
> Danke und GruÃ? Markus


Hallo Markus,
hast Du das Problem inzwischen gelöst ?
Könntest Du mir helfen?

Ich muss ebenfalls die Zeit zwischen zwei Interrupts(INT_6) messen.
Etwa so:

int old_time, new_time;
void my int_6_isr(void)
{
  int irq_count;
  old_time = new_time;
  new_time = get_time();

  irq_count = Irq_GetCount( INT_6);
}

Wie muss get_time() aussehen?

 Danke
  Fred






    Antwort schreiben


Antworten: