Ext. Interrupt für exakte 200ms lowlevel

Gast #4460334
Hallo,

ich benötige folgende Funktion:

Der Interrupt Pin 0 wird extern für 200ms ( +-5ms ) auf low gezogen, nur 
dann soll etwas geschehen.

Wie würde man so etwas am geschicktesten Lösen?

Interrupt bei fallender Flanke aktivieren, in der entsprechenden ISR als 
erstes den INT0 deaktivieren, einen Timer auf 195ms setzen, danach im 
Timer Interrupt abfragen ob es nach wie vor Low ist, und den Timer 
erneut auf 10ms setzen und prüfen ob es jetzt wieder High ist, falls ja 
- > darf aktion ausgeführt werden, falls nein eben nicht. Und danach den 
INT0 wieder aktivieren.

Gibt es dazu nicht eine einfachere geschicktere Lösung, oder ist das 
schon am optimalsten?

Gustav
Gast
Gustav M. schrieb:
> Wie würde man so etwas am geschicktesten Lösen?

Indem  man sich eine Systemuhr einrichtet, die die Systemzeit auf 1 ms 
auflöst und im Interrupthandler selbige abfragt.

Solche Ideen wie Timer und Capture ist für sowas eher schlechter 
geeignet - insbesondere wenn man nicht so tief in der Materie steckt, 
daß man fragen muß.

Aber mal was anderes: von was für einem Prozessor schreibst du? Bei 
Cortexen hat man den Systemtimer quasi gratis immer dabei.

W.S.
Gast
Gustav M. schrieb:

> Der Interrupt Pin 0 wird extern für 200ms ( +-5ms ) auf low gezogen, nur
> dann soll etwas geschehen.
>
> Wie würde man so etwas am geschicktesten Lösen?

Mit Capture-Interrupt.

> Gibt es dazu nicht eine einfachere geschicktere Lösung, oder ist das
> schon am optimalsten?

"Optimal" ist eins derjenigen Adjektive, die sich nicht sinnvoll 
steigern lassen. Wenn man auch nur die Wortbedeutung versteht, sollte 
klar sein, warum das so ist...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 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.