Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 02.01.2008, 23:49 Titel: Programm zum Frequenzeinlesen 1Hz bis ca. 1000Hz mit QBasic |
|
|
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 |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 03.01.2008, 11:32 Titel: Windows-DOS-Box |
|
|
Hallo,
Programm läuft in der Windows-DOS-Box.
Gruß Dieter |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 03.01.2008, 12:47 Titel: |
|
|
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.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 03.01.2008, 13:48 Titel: Danke für den Tipp mit der Diskete |
|
|
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 |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 03.01.2008, 14:42 Titel: |
|
|
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 Aber waren es nicht 54,9254ms? _________________ Elektronik und QB? www.skilltronics.de !
Zuletzt bearbeitet von Skilltronic am 03.01.2008, 14:52, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 03.01.2008, 14:43 Titel: Re: Danke für den Tipp mit der Diskete |
|
|
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 )
Skilltronic hat Folgendes geschrieben: | weil TIMER nur eine Auflösung von 54ms hat |
56...  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 03.01.2008, 18:06 Titel: |
|
|
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 |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 03.01.2008, 19:12 Titel: |
|
|
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
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 03.01.2008, 20:01 Titel: |
|
|
Hallo,
auf diener Seite www.skilltronics.de habe ich mich in der Vergangenheit schon einige Anregungen geholt, SUPER 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.
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 |
|
 |
|