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 Josef - 21.08.2009 10:37)
Als Antwort auf Re: Pulsmessung von PeterS - 20.08.2009 14:52
Ich nutze:
C-Control Pro Mega128
> > 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

hall ellen, hallo peter

nach einem update funktionieren die Abfragen, so wie man sich das vorstellt einwandfei.
ich kann die zeitktitischen abfragen usw. in der interruptroutine f├╝r 3 UTI Bausteine durchf├╝hren.

gru├č
josef


    Antwort schreiben


Antworten: