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 PeterS - 20.08.2009 14:52)
Als Antwort auf Re: Pulsmessung von ER - 20.08.2009 13:44
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 32 Application Board, CC-Pro 128 Application Board, Pro-Bot128
> 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

Nein, das ist nicht so. Innheralb von IRQ Routinen darf es If, while, switch etc geben.
Was Josef schreibt ist so nicht richtig.

Gruss Peter

>
>
>
>
> > > > 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 Josef - 21.08.2009 10:37)