|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 19.04.2006, 10:28 Titel: Fequenzmessung bis 20Khz am com1 oder LPT1 |
|
|
Hallo,
Ich möchte mit meinem PC, Frequenzen bis zu ca. 20 KHz einmessen, die Torzeit sollte veränderbar sein, von ca. 0,1 bis 2 Sekunden. Die Frequenz sollte über com1 Eingelessen werden, der LPT1 funktioniert ja nicht mit XP.
Frage:
Hat von euch jemand eine Programmroutine zum Einlesen von Frequenzen (bis ca. 20KHz).
Gruß Dieter |
|
Nach oben |
|
|
Devilkevin aka Kerstin
Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 19.04.2006, 10:39 Titel: Re: Fequenzmessung bis 20Khz am com1 oder LPT1 |
|
|
eeg-grimm hat Folgendes geschrieben: | der LPT1 funktioniert ja nicht mit XP.
|
Hi, auf Skilltronics Seite gibt es ein kleines Programm mit dem du auch unter WindowsXP den LPT1 ansteuern kannst, habe es an mehreren Rechnern schon getestet. Download und Beschreibung (runter scrollen). _________________ www.piratenpartei.de |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 19.04.2006, 12:03 Titel: |
|
|
Hi,
alle multitasking Betriebssysteme (Window) eignen sich nicht um zeitkritische Messungen - Steuerungen zu realisieren.
Zumindestens treten dabei immer große Ungenauigkeiten auf.
Das wurde hier im Forum schon oft erörtert.
Lösungsansätze für deine Frequenzmessungen sind z.B. Hardwarezähler der dann über LPT oder COM ausgelesen wird.
Gruß
Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
Michael Frey
Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 19.04.2006, 18:22 Titel: |
|
|
Zur Messung:
20 kHz ist recht viel, dann müsstest du mindestens alle 50 Microsekunden den Port ablesen.
Andere/Ganz andere Idee:
Man könnte doch den Audio Eingang missbrauchen?
Der sollte auf solche Frequenzen reagieren können.
Die Soundkate kann einfach auf zeichnen und abspeichern und dein Programm analisiert dann die "Audio Datei".
Wenn man ein Sauberes Rechteck einspielt sollte die Auswertung machbar sein. |
|
Nach oben |
|
|
Kai Bareis
Anmeldungsdatum: 10.09.2004 Beiträge: 545 Wohnort: Baden Würtemberg
|
Verfasst am: 19.04.2006, 18:39 Titel: |
|
|
Also Frequenz messung ist möglich aber wen du deinem Programm nicht die volle Rechenleistung schwanken die Ergebnisse sehr stark und für 20 kHz braucht man einen schnellen Rechner damit man sowas noch direckt verarbeiten kann. Mit Freebasic habe ich es mit Hilfe eines AD Wandlers geschaft ein ganz simples Oszilloscope zu basteln womit ich etwa 1,5Khz messen kann (Impulse in einer Sekunde gemessen = Hz)
Eine andere Möglichkeit wäre den Takt auf einen Binärzähler zu geben und von hier aus dann die Frequenz zu ermitteln.
So in etwa würde das vom Ablauf dann aussehen.
1. Tor öffnen
2. Zähler zählt
3. Tor schließen
4. Zähler auslesen
5. Zähler zurücksetzten
Und wenn ich mich nicht irre war sowas in der Art schonmal hier im Forum. _________________ MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht! |
|
Nach oben |
|
|
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 20.04.2006, 11:09 Titel: Frequenzmessung welches Gerät |
|
|
Hallo zusammen,
Ich bin beeindruckt, dass sich so schnell was bewegt auf meine Anfrage, DANKE.
Ich Messe im Moment die Frequenz mit einen GW-Basic Programm am LPT1 (DE1).
GW-Basic hat aber den Nachteil, dass man das Programm nicht direkt starten kann (nix mit EXE Programm). Dashalb möchte ich mit QBasic das programmieren.
Das GW-Basic Programm / Frequenzmessung an DE1
45 SUB=&HF000
50 FOR I=0 TO 55 : READ A : POKE &HF000+I,A : NEXT I
55 REM BLOAD „IMPCNT-M“ ,&HF00
60 CLS
190 REM Frequenzmessung
195 :
200 LOCATE 10,10,0:PRINT SPC(11):LOCATE 13,10,0:PRINT SPC(20):LOCADE 15,10,0:PRINT SPC(21):MI=1
205 LOCATE 8,4,0:INPUT „Messung ENDE = 1“;E
210 IF E=1 GOTO 265
215 POKE &HF013,1
220 LOCATE 12,7,0:PRINT „FREQENZ : Hz“
225 LOCATE 12,18,0:PRINT USING „#####“;FREQUENZ
230 CALL SUB
235 FREQUENZ=(PEEK(&HF200)+256*PEEK(&HF201))*20.6611
240 GOTO 205
265 END
266 DATA &H55,&HBA,&H79,&H3,H1E,&HBB,H40,&H0,&H8E,&HDB
267 DATA &HBB,&H0,&H0,&H8A,&HE,&H6C,&H0,&H80,&HC1,&H28,&HEC
268 DATA &H8A,&H2E,&H6C,&H0,&H38,&HE9,&H74,&H14,&H24,&H10
269 DATA &H75,&HF3,&HEC,&H8A,&H2E,&H6C,&H0,&H38,&HE9,&H74
270 DATA &H7,&H24,&H19,&H74,&HF3,&HF43,&HEB,&HE3,&H1F,&H89
271 DATA &H1E,&H0,&HF2,&H5D,&HCB
Es gibt vielleicht die Möglichkeit das GW-Basic Programm ins QBasic umzuschreiben.
Am besten finde ich den Vorschlag, die Frequenz mit einem externen Gerät zu erfassen und dann mit dem PC abzufragen.
Frage: Welches Gerät ist dazu geeignet????????????
Gruß Dieter
Zuletzt bearbeitet von eeg-grimm am 20.04.2006, 13:38, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 20.04.2006, 12:07 Titel: |
|
|
Hallo
Wie es aussieht, ist bei deinem Programm der Basicteil im Prinzip nur der Rahmen für ein schnelleres Assemblerprogramm. Diese Befehle in Maschinencode bilden die DATA-Zeilen am Ende. Mit GW-Basic wird dieses Programm nur aufgerufen und der Messwert angezeigt. Das in QBasic umzusetzen dürfte nicht so einfach sein.
Wichtig wäre zu wissen, wie genau das Messergebnis sein soll. Davon hängt ab, wie aufwändig das Ganze wird. Wenn ich meinen 1GHz Athlon unter DOS boote, kann ich am COM direkt Frequenzen bis in den zweistelligen kHz-Bereich messen und das sehr genau. Wenn es unter Windows sein soll, ist QB zu langsam, um 20kHz am COM aufzulösen. Da kommt dann die externe Hardware ins Spiel.
Das könnte man mit einem 8-Bit Binärzähler machen, auf dessen Eingang man die zu messende Frequenz gibt. Am Übertrag vom achten Bit liegt das Signal geteilt durch 256 vor, bei 20 kHz also nur noch knapp 80 Hz, die sich auch unter Windows mit QB erfassen lassen. Diese geteilte Frequenz wird auf einen COM-Eingang gelegt und die Takte vom Programm gezählt. Durch die Teilung entsteht eine maximale Abeichung von rund 1,3%. Wenn das zuviel ist, könntest du über die drei weiteren Eingänge die der COM noch hat, nach dem Ende der Messzeit die drei höchstwertigen Bits des Zählers auslesen. Dadurch wird die Genauigkeit nochmal um das achtfache gesteigert und dürfte damit schon kleiner sein als der Fehler, den du bei der Messung der Torzeit ohnehin immer mit hineinbekommst.
Vielleicht beschreibst du noch etwas ausführlicher, was du machen willst, wie das Signal aussieht und welche Genauigkeit du erreichen willst.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 20.04.2006, 13:42 Titel: |
|
|
Hallo,
18 verschiedene Rechteckfrequenzen (+5V) werden nacheinander mit einem Multiplexer auf den Frequenzmesseingang gelegt und kontinuierlich aufgezeichnet.
Du schreibst Fehler 1,3% klingt Erstmahl wenig, aber es werden auch Frequenzen mit 100Hz überwacht, da funktioniert das mit dem /256 nicht.
Die Genauigkeit sollte bis 1KHz ca +-2 Hz sein und bis 20 KHz +-10 Hz.
Ich bräuchte halt ein Gerät oder einen Schaltplan das die Frequenz umwandelt und am z.B. con1 bereithält zum auslesen.
Gruß Dieter |
|
Nach oben |
|
|
Michael Frey
Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 20.04.2006, 18:12 Titel: |
|
|
Die Bandbreite und die Torlzeit können ein Problem werden.
Nehmen wir eine Torzeit von 0.1 Sekunden und eine Frequenz von 100 Hz.
Ein kompleter Impuls brauch bei 100 Hz 0.01 Sekunden, das heisst du kannst 10 Impulse Zählen in den 0.1 Sekunden.
Jenach dem wie das Timing ist, kann es um 1 abweichen, klingt wieder mal nach nichts, aber wenn 10 Impulse=100 Hz sind 11 Impulse= 110Hz und 9 Impulse=90Hz.
Gibt also ein Abweichung von 10 Hz. |
|
Nach oben |
|
|
eeg-grimm
Anmeldungsdatum: 19.04.2006 Beiträge: 52 Wohnort: Herzogenaurach
|
Verfasst am: 21.04.2006, 07:58 Titel: |
|
|
Hallo,
ich scheib ja in meiner ersten Anfrage das die Torzeiten 0,1 bis 2 Sekunden sein sollen.
Es ist bekant bei den 18 Frequenzen, welche Hz sind und welche im KHz Bereich sind.
Z.B.
Frequenz 3 = Überprüfung der Netzfrequenz = 100Hz = Torzeit 2 Sekunden
Frequenz 11 = Generator1 Drehzahl = 1000 bis 3000Hz = Torzeit 0,5 Sekunden
Frequenz 12 = Gemerator2 Drehzahl = 2500 bis 7000Hz = Torzeit 0,5 Sekunden usw
Gruß Dieter |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 25.04.2006, 14:04 Titel: |
|
|
Hallo
Unter Windows wird es sehr schwierig, Torzeiten so genau zu machen, dass sich die hohen Frequenzen auf wenige Hertz messen lassen. Da wäre es wahrscheinlich nötig, auch die Torzeiten extern zu erzeugen, z.B. über eine Quarzgesteuerte Zeitbasis -> der Aufwand steigt. Unter DOS geht es sicher auch ohne.
Soll denn der Multiplexer, der die 18 Frequenzen verteilt auch vom PC gesteuert werden und wie funktioniert der genau?
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 25.04.2006, 14:47 Titel: |
|
|
Für solche Projekte sollte es eine Selbstverständlichkeit sein, nicht mit der Hardware zu sparen. Gebraucht-Rechner im EBay ersteigern mit MS-DOS 6.22-Lizenz und das Gerät dediziert als Frequenzmesser wie hier besprochen einsetzen, löst eigentlich alle Probleme. In der Industrie kommt so etwas sogar häufig vor.
Die Idee, mit demselben Desktop-PC, auf dem man surft, E-Mails schreibt und Briefe in Word verfasst, auch noch Echtzeitanwendungen machen wollen, sollte man sich sofort wieder aus dem Kopf herausmeisseln...
Dies wäre sonst in etwa so, wie wenn ich meine Kunden-Websites auf demselben Rechner hosten würde, wo Offerten geschrieben werden, Belege verbucht, Korrespondenz an Kunden und Lieferanten erstellt, E-Mails gelesen, gesurft usw. Stattdessen habe ich auch klar für diese Aufgaben alles getrennte Rechner, so dass ein Bluescreen bei einer etwas gefährlicheren Operation im Office-Programm nicht gleich die Web-Besucher in einer PHP-Session auch rauswirft...
Für private Hobbyanwender, die entweder nur surfen / E-Mails lesen/verfassen _oder_ Elektronikexperimente durchführen wollen, bei denen der PC als Frequenzmessgerät benötigt wird: Eine entsprechende Festplattenpartitionierung (kleines FAT 16 Bit mit DOS 6.22 und anschliessend ein D:\ als %systemDrive% für Windows XP) als Dual-Boot aufgesetzt löst eigentlich die Probleme vollständig.
@eeg-grimm: Ansonsten noch zu Deinem Programm: Der dortige Entwickler hat eine kleine Assemblerroutine (Maschinencode in den Hexzahlen der DATA-Zeilen) geschrieben, vielleicht kann ja jemand diese disassemblieren, damit man sie allenfalls in reines QB portieren könnte. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Michael Frey
Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 25.04.2006, 17:48 Titel: |
|
|
Wenn Geld vorhanden ist, gibt es noch ganz andere schöne Lösungen:
Einige Mutlimeter haben eine Serrielle Schnittstelle, die man ganz einfach über QBasic auslesen kann.
(Leider macht mir Windows Probleme, wenn ich mit QBasic über die Serielle Schnittstelle arbeiten will)
Siehe z.B. http://www.franksteinberg.de/hardmess.htm.
Das Multimeter muss dann einfach unbedingt Frequenzen messen können. |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 26.04.2006, 12:24 Titel: |
|
|
Wenn kein Geld vorhanden ist, würde es ein Mikrocontroller für ein paar Euro auch schon tun. Der könnte den Multiplexer steuern, die Frequenzen hochgenau messen und die Werte dann an den PC übertragen. _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
|
|
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.
|
|