www.mikrocontroller.net

Forum: PC-Programmierung Main-Routine in Visual Basic


Autor: A. Zöller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein Programm zur Messwerterfassung und zum Schalten von einigen 
Dingen an meiner Heizung laufen. Dabei werden einige Eingänge des 
Parallelports in einer Timerroutine abgefragt und bestimmte Sachen 
sofort in eine Logdatei geschrieben. Die Timerroutine wird 4 mal in der 
Sekunde aufgerufen. Jetzt müsste ich noch mehr machen. Ich befürchte 
jedoch dass meine Timerroutine zu lang wird.
Auf einem Mikrokontrollersystem fragt man die Eingänge in einer 
Timerinterrupt-Routine ab und setzt Flags, die dann in der Hauptschleife 
ausgewertet und verarbeitet werden. Dies würde ich hier gerne genauso 
machen. Mein Programm läuft unter VB6. Klar kann ich in der Timerroutine 
Flags setzen, aber wo ist die Hauptschleife wo ich sie abfragen kann ? 
Ich könnte einen weiteren langsameren Timer benutzen aber ich glaube das 
ist auch kein sauberer Weg. Es läuft parallel ein anderes Programm das 
Temperaturen mitloggt, d.h. für dieses Programm muss auch noch CPU-Zeit 
übrig sein.
Wie wird den sowas am besten implementiert (und am einfachsten) ?

A. Zöller

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. Zöller schrieb:
> Ich habe ein Programm zur Messwerterfassung und zum Schalten von einigen
> Dingen an meiner Heizung laufen. Dabei werden einige Eingänge des
> Parallelports in einer Timerroutine abgefragt und bestimmte Sachen
> sofort in eine Logdatei geschrieben. Die Timerroutine wird 4 mal in der
> Sekunde aufgerufen. Jetzt müsste ich noch mehr machen. Ich befürchte
> jedoch dass meine Timerroutine zu lang wird.

Über wieviele Daten reden wir, die da geschrieben werden?

> machen. Mein Programm läuft unter VB6. Klar kann ich in der Timerroutine
> Flags setzen,

Denk logisch nach.
Wenn das Schreiben zu lange dauert, als dass du es 4 mal in der Sekunde 
hin kriegst, dann ist es völlig egal, wo du das Schreiben hinpackst: Es 
wird sich auch dann mit dem Timing nicht ausgehen.

Aber PC samt Platten-Hardware sind schnell. Da musst du schon eine Menge 
schreiben, damit sich das dann nicht mehr ausgeht.

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du mit Interrupt arbeitest befindet sich dein uC doch in einer 
endlosen Hauptschteife, aus der in dir Interruptroutine gesprungen wird.

In dieser Hauptschleife erfolgt die Auswertung der Flags.

B.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernadette schrieb:
> Wenn du mit Interrupt arbeitest befindet sich dein uC doch in einer
> endlosen Hauptschteife, aus der in dir Interruptroutine gesprungen wird.
>
> In dieser Hauptschleife erfolgt die Auswertung der Flags.

Obacht: Der TO redet von einem PC

Autor: Eddy Current (chrisi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau. Und wenn er gerne eine Hauptschleife hätte, soll er den gesamten 
Vorgang in einen Thread "outsourcen". In VB.NET eine angenehme 
Angelegenheit bzw. viel Raum zur Weiterentwicklung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.