Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Programm zum Frequenzeinlesen 1Hz bis ca. 1000Hz mit QBasic

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 52
Wohnort: Herzogenaurach

BeitragVerfasst am: 02.01.2008, 22:49    Titel: Programm zum Frequenzeinlesen 1Hz bis ca. 1000Hz mit QBasic Antworten mit Zitat

Hallo alle QBasic begeisterte,

Ich habe ein kleines Programm gebastelt zum Einlesen einer Frequenz (von 1Hz bis ca. 1000Hz).
Die Frequenz wird an DE1 (LPT1) eingelesen.
Das Problem ist, dass die Torzeit nicht genau 1 Sekunde ist, ca. 1,00s bis1,05s.
Die Frequenz wird nicht sauber eingelesen, ca. +-2Hz und bei 1000Hz ca. –20Hz.

Frage:
Hat von euch jemand ein Programm mit den man Frequenzen bis ca. 1000Hz mit dem PC in QBasic erfassen kann?

Gruß aus Herzogenaurach
Dieter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 02.01.2008, 22:59    Titel: Antworten mit Zitat

Hallo,

lässt du das Messwerterfassungsprogramm unter "echtem" DOS oder in der Windows-DOS-Box laufen? Für zeitkritische Messungen sollte man immer auf "pures" DOS ohne laufendes Windows zurückgreifen, weil das Windows-Multitasking für Ungenauigkeiten sorgen kann.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 52
Wohnort: Herzogenaurach

BeitragVerfasst am: 03.01.2008, 10:32    Titel: Windows-DOS-Box Antworten mit Zitat

Hallo,
Programm läuft in der Windows-DOS-Box.
Gruß Dieter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.01.2008, 11:47    Titel: Antworten mit Zitat

Hallo,

dann solltest du unbedingt mal versuchen, das Programm unter DOS laufen zu lassen. MS-DOS 6.2(2) könntest du nehmen, aber auch FreeDOS (http://www.freedos.org/) sollte geeignet sein. Dadurch sollte sich die Genauigkeit der Messungen steigern lassen. Um das Ganze erst mal auszuprobieren, könntest du von einer DOS-Startdiskette booten lassen und das Programm dann von Diskette laufen lassen. Dann musst du zum Ausprobieren, ob die Ansprüche an die Genauigkeit erfüllt werden, nicht gleich ein neues altes Betriebssystem installieren. zwinkern

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 52
Wohnort: Herzogenaurach

BeitragVerfasst am: 03.01.2008, 12:48    Titel: Danke für den Tipp mit der Diskete Antworten mit Zitat

Danke für den Tipp mit der Diskete.
Hab noch ne alte DOS 3.XY Version zu Hause, da werde ich das testen.
Gruß Dieter


PS. Dachte schon ich, müsste auf meinem alt Laptop (Windows 95) das Betriebssystem herunterschmeißen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 03.01.2008, 13:42    Titel: Antworten mit Zitat

Hallo

Vielleicht machst Du es ja schon so, aber als kleiner Tip: wenn Du die Torzeit mit TIMER misst, solltest Du zu Beginn eine kleine Schleife einbauen, die wartet, bis der Wert von TIMER gerade umschlägt. Sonst kann es auch unter DOS zu Abweichungen kommen, weil TIMER nur eine Auflösung von 54ms hat und Du nie genau weißt, ob die Zeit gerade erst gewechselt hat, oder beim Start kurz davor war. Wenn Du an genaueren Messungen interessiert bist, gibt es noch die Möglichkeit, mit den Registern des PIT, also des internen Zeitgeberbausteins zu arbeiten. Mit einem schnellen PC kannst Du die Torzeiten so auf wenige Mikrosekunden genau messen.

Gruß
Skilltronic

EDIT: Wenn Du Win95 auf dem Laptop hast, kannst Du doch auch ohne Diskette unter DOS booten. Also entweder Neustart im MS-DOS Modus oder gleich beim Hochfahren F8 (war es F8?)

EDITEDIT: Da war Jojo schneller zwinkern Aber waren es nicht 54,9254ms?
_________________
Elektronik und QB? www.skilltronics.de !


Zuletzt bearbeitet von Skilltronic am 03.01.2008, 13:52, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 03.01.2008, 13:43    Titel: Re: Danke für den Tipp mit der Diskete Antworten mit Zitat

eeg-grimm hat Folgendes geschrieben:
PS. Dachte schon ich, müsste auf meinem alt Laptop (Windows 95) das Betriebssystem herunterschmeißen.


Windows 95 hat noch einen echten DOS-Modus, in den du durch Druck von F8 beim starten gelangst ("Eingabeaufforderung"). Auch über den Beenden-Dialog "Im MS-DOS-Modus neu starten" kommst du in eine reine dos-umgebung. das ist dann auch mit DOS 6.22 gleichwertig (dann bist du im inoffiziellen Dos 7 lächeln )

Skilltronic hat Folgendes geschrieben:
weil TIMER nur eine Auflösung von 54ms hat

56... zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 52
Wohnort: Herzogenaurach

BeitragVerfasst am: 03.01.2008, 17:06    Titel: Antworten mit Zitat

Hallo Skilltronic,

Die Schleife habe ich in meinem Programm, die wartet, bis eine neue 0,05s Zeitintervall beging.

Ich bin ein Autodidakt bei PC und Programmierung.

Da ist das Programm.

`Frequenzmessung mit Optokoppler an DE1 auf GND

AA:
TT = TIMER
EE:
IF TT = TIMER THEN GOTO EE
A = INP(889) AND 16
IF A = 16 THEN GOTO AA

T = 1+ TT
AX:

IF TIMER > T THEN GOTO FF

A = INP (889) AND 16
IF A = 0 THEN GOTO AX
IF TIMER > T THEN GOTO FF
B = B + 1

AZ:
IF TIMER > T TEN GOTO FF

A = INP(889) AND 16
IF A = 16 THEN GOTO AZ
GOTO AX

FF:
TTT = TIMER
PRINT B; „HERZ“
PRINT TT
PRINT TTT
PRINT TTT –TT ;“ s (TORZEIT)“
PRINT „*****************************“

SLEEP 1
B = 0
GOTO AA
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 03.01.2008, 18:12    Titel: Antworten mit Zitat

Ich bin auch Autodidakt könnte man sagen. Wenn Du den Wert für INP(889) einfach immer nur mit dem letzten eingelesenen vergleichst, sparst du dir eine Menge Zeilen. Du musst inm diesem Fall nur die Frequenz durch 2 Teilen, weil Du dann ja beide Flanken des Signals misst. Bist Du an einer höheren zeitlichen Auflösung interessiert? Unter DOS kann man die Taktrate von TIMER auch verändern und so ganz einfach auf kleinere Intervalle als die 55ms kommen.

Ach ja, eine Sache noch. Ich will nicht klugscheißen, aber die Einheit Hertz ist nach dem Physiker Heinrich Hertz benannt und wird deshalb mit tz geschrieben zwinkern

Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 52
Wohnort: Herzogenaurach

BeitragVerfasst am: 03.01.2008, 19:01    Titel: Antworten mit Zitat

Hallo,

auf diener Seite www.skilltronics.de habe ich mich in der Vergangenheit schon einige Anregungen geholt, SUPER zwinkern Seite.
Hut ab vor deiner Leistung und das Du weiterhin mit Herz und Verstand und der nötigen Frequenz (Herr Hertz) unterwegs bist.

Der Tipp mit der Zustandsänderung am DE1 wollte ich mit dem Programm erschlagen.
Aber Du hast Recht ich hab einfach zu kompliziert gedacht. mit dem Kopf durch die Mauer wollen

Ich schreibe das Programm um.
Teste es, dann werde ich entscheiden, ob die Zeiteinheit in QBasic unter 0,054s gedrückt werden muss.
Gruß Dieter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz