[AVR] Wie ausbleiben eines Interrupts erkennen?

Gast #1543952
Hallo,

ich messe mit ATMega8 und ICP ein pulsbreitenmoduliertes Signal. Dabei 
möchte ich aber auch erkennen wenn das Eingangssignal ausbleibt. 
Momentan bleibt das zuletzt gemessene Ergebnis einfach stehen, was mir 
meine Messung versaut.
Da die Pulsbreite teilweise recht stabil ist, kann ich nicht einfach auf 
"aktuell <> alt" vergleichen.

Ich könnte natürlich einen Interrupt-Zähler einbauen und periodisch 
nachschauen ob er inkrementiert, das bedeutet aber mehr Zeit in der ISR 
und in main() und eine zusätzliche Variable.

Gibt es andere Möglichkeiten?

Die Frage ist eher akademisch, weil ich genügend Platz und Zeit in 
meinem Programm habe, aber es interessiert mich trotzdem.

Michael
Gast #1543974
Bensch schrieb:
> Timer aufziehen und im Int zurücksetzen. Wenn Überlauf --->

Danke für Deine Antwort, ich vergaß zu schreiben daß bereits alle 3 
Timer benutzt sind.
Persönliche Seite #1544497
Kommt ganz drauf an, was Du machen willst bzw machst.
Oft kann man durch geschickte Programmierung mehrere Timer zu einem 
zusammenfassen (es gibt zum Beispiel einen Overflow- sowie zwei 
Compare-Interrupts). Mal so eine Idee.

Speziell, wenn man lange Wartezeiten hat, kann man den Timer auch 
schnell laufen lassen und dann in der INT-Routine noch einen 
Software-Timer mitzählen. Somit kann man gleich mehrere Compare-Punkte 
einbauen.
#1546407
Michael H. schrieb:
> Danke für alle Antworten. Ich werde mir mal überlegen was in meiner
> Applikation die sinnvollste Lösung ist.
>

> Danke für Deine Antwort, ich vergaß zu schreiben daß bereits alle 3
> Timer benutzt sind.

Und denk dran, dass es kein Naturgesetz gibt, nach dem es verboten ist, 
in der ISR eines Timer-Events mehere Funktionalitäten unterzubringen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.