Re: Pulsmessung Kategorie: Programmierung C (von Josef - 21.08.2009 10:37) | ||
Als Antwort auf Re: Pulsmessung von PeterS - 20.08.2009 14:52 | ||
| ||
> > 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: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum