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

Re: Pulsmessung Kategorie: Programmierung C (von ER - 20.08.2009 13:44)
Als Antwort auf Re: Pulsmessung von Josef - 17.08.2009 19:09
Ich nutze:
C-Control Pro Mega32
Hallo Josef,
ich habe Deine Ausführungen und Dein Programm gelesen und gleich eine Frage dazu:
Ist das wirklich so? Innerhalb einer Interruptserviceroutine darf es kein if, else, switch und case
geben? Das wäre ja furchtbar. Wie soll man ohne diese Anweisungen ein Programm schreiben?
Und wie soll man dann ein Aufgabe realisieren z.B. in 100 Interrupts bei cnt=0 und 70?

GruÃ?
Ellen




> > > habe um timingprobleme auszuschlieÃ?en die abspeicherung in die interruproutine aufgenommen.
> > > warum muss man nach jedem interrupt den timer wieder neu definieren?
> > >
> > > danke
> > > josef
> >
> > Nun ja, die Library ist halt so spezifiziert, das sie eine Periodenmessung macht. Life is hard :-)
> >
> > Gruss Peter
>
>
> hallo peter
> die Messung nach jedem interrupt starten kostet zwar zeit ist aber kein problem.
> das problem fängt erst dort an, wenn die interruptroutine keine abfrage (if, switch usw.)
> oder einen Unterprogrammaufruf verträgt.
> sobald ich in die unten angeführte interruptroutine ein if einbaue verabschiedet sich der prozessor.
>
> void Timer3_ISR(void)
> {
>    x[a]=Timer_T3GetPM();
>    Irq_GetCount(INT_TIM3CAPT);           // Interrupt zurücksetzen
> }
>
> will man nun ein signal mit unterschiedlichen Pulslängen messen, funktioniert das nur
> wenn man im hauptprogamm ein while (x[a]==0; einbaut und anschlieÃ?end die Messung
> wieder startet (Bemerkung: ist aber nicht sinn eines interrupts, wenn man wartet bis der interrupt
> abgearbeitet ist)
> oder man lässt den code durchrasseln und macht immer wieder eine abfrage -> dann übersieht man
> irgendwann einen puls, wenn der codedurchlauf zu lange wird.
>
> gruÃ?
> josef


    Antwort schreiben


Antworten:

Re: Pulsmessung (von PeterS - 20.08.2009 14:52)
    Re: Pulsmessung (von Josef - 21.08.2009 10:37)