Korrekter Programmaufbau

Gast #2747567
Hi,

wie würdet Ihr das Programm aufbauen:

Aufgabe:
-bestimmte Signalfolge an 4 Pins anlegen
-an 2 AD-Pins den anliegenden Wert mehrfach messen, umrechnen und 
anzeigen

Überlegung bis jetzt:
-Interruptfunktion, die die Signalfolge steuert und dementsprechend die 
Messung aufruft
-in der Main wird jede Sekunde eine Funktion aufgerufen, die den 
aktuellen Messwert umrechnet und anzeigt

Ist dies OK? Oder gibt es einen besseren Programmaufbau (sparsamer, 
sicherer...)
Gast #2747591
Nun, wenn das die gesamte Aufgabenstellung ist, brauchst du dich um die 
Eingabepins gar nicht zu kümmern. Eine Signalfolge anlegen kann man da 
ja jederzeit, passieren soll damit ja nichts weiter ;)

Also einfach alle 100ms eine ADC-Messung machen, und anzeigen. Fertig.

Oliver
Gast #2747709
Die Frage ist, ob ich z.B. die Messung in der Main aufrufe, oder vom 
Timerinterrupt aus.
Also läuft mein Programm standardmäßig von der main-Fkt aus, nur die 
Signalfolge wird im TimerInterrupt gesteuert?
#2747880
Rainer schrieb:
> Die Frage ist, ob ich z.B. die Messung in der Main aufrufe, oder vom
> Timerinterrupt aus.

Ist es im kleinen µs Bereich zeitkritisch bzw. wie aufwändig ist die 
Generierung?

Wenn zeitkritisch bzw. einfach zu implementieren: Ab in die ISR damit.

> Also läuft mein Programm standardmäßig von der main-Fkt aus, nur die
> Signalfolge wird im TimerInterrupt gesteuert?

Ist zb eine Möglichkeit.
Gast #2752044
Ein Vorschlag:

Synchronisiere die main-Schleife mit einem festen Zeitintervall, z.B. 
alle 10ms. D.h. die Schleife wird alle 10ms einmal durchlaufen.

Dann kannst alle Aufgaben, die zyklisch und in einem festen Intervall 
erfolgen müssen, in diese Schleife hineintun.

Nur die Aufgaben, die eine schnelle und sofortige Reaktion benötigen, 
kommen in die ISR.


Beispiel:
Du mißt einen Wert und gibst in einmal pro Sekunde mit printf über einen 
UART aus.
-> Das printf() kommt in die Hauptschleife
-> Das Füttern des UARTs kommt in den UART-TX-Interrupt.

PS: Überleg Dir gut, was wirklich eine sofortige Reaktion benötigt. Das 
Abfragen eines Buttons muß nicht über Interrupt erfolgen.

Antwort schreiben

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