Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
sunny0815
Anmeldungsdatum: 24.11.2004 Beiträge: 28 Wohnort: Ludwigshafen
|
Verfasst am: 22.01.2005, 22:10 Titel: COM3 mit QB ???? |
|
|
Hallo Leute,
ich bins wieder, der Typ, der ein Seewasseraquarium mit QBasic (ziemlich erfolgreich) steuert. Aber nun zur Sache:
an COM1 wird der pH-Wert und die Temperatur erfasst,
an COM2 wird das Redoxpotential erfasst. Jeweiles ein Messgerät angescshlossen.
COM1 und 2 sind auf dem Motherboard vorthanden.
Es ist nun notwendig geworden zusätzlich die Dichte zu messen. Dazu habe ich mit gestern bei KM-Elektronic eine Controller Card gekauft, die - wie vom Verkäufer versprochen- tatsächlich unter Windows98SE als COM3 erkannt wird. (Es steht auf der Verpackung diese Karte läuft auch unter DOS.
Meine Steuerung lasse ich bisher immer unter der Windows 98 in der DOS Eingabeaufforderung laufen ( es gab nie Probleme beim Messen und Regeln). Wenn ich nun mit dem OPEN-Befehl COM3 ansprechen will, kommt die Fehlermedung: unzulässiger Befehl.
Es funktioniert auch nicht, wenn ich den PC im DOS-Modus starte.
HILFE. Wie kann ich die dritte COM-Schnittstelle nutzen??
Besten Dank für jeden Hinweis.
-Ist es möglich im Forum Bilder zu zeigen?? Wenn ja wie, ich würde euch gern mal zeigen wozu QBasic fähig ist.
Gruß
Michael |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 23.01.2005, 00:10 Titel: |
|
|
Hallo.
Du könntest den Inhaber von www.FrankSteinberg.de mal fragen. Er kennt sich da sehr gut aus. Oder du postest im Forum von Skilltronic.
Zitat: | -Ist es möglich im Forum Bilder zu zeigen?? Wenn ja wie, ich würde euch gern mal zeigen wozu QBasic fähig ist. |
Das geht natürlich. Du lädtst dein Bild auf deinen Webspace oder zu einem Bilderhost (http://www.imageshack.us/) und dann schreibst du im Forum:
Code: | [img]http://www.bla.xy/meinbild.jpg[/img] |
und schon wird dein Bild hier angezeigt.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Zuletzt bearbeitet von Sebastian am 24.01.2005, 21:25, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 23.01.2005, 00:19 Titel: |
|
|
Hallo !
Auf deine eigentliche Frage weiss ich zwar keine Antwort, aber ich hätte da eine andere Idee. Eine Möglichkeit wäre vielleicht, über COM2 einen Multiplexer ansteuern, der immer abwechseld eine Verbindung zwischen COM1 und den verschiedenen Messgeräten herstellt. Bei einem Aquarium kommt es ja nicht auf Geschwindigkeit an. Du könntest also eine Sekunde lang die Temperatur und pH-Wert messen, in der nächsten das Redoxpotential oder was auch immer und so fort. Auf diese Art liessen sich dann sogar mehr als 4 Geräte anschliessen.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
sunny0815
Anmeldungsdatum: 24.11.2004 Beiträge: 28 Wohnort: Ludwigshafen
|
Verfasst am: 23.01.2005, 00:29 Titel: |
|
|
Hallo,
sicher lassen sich mehrer Messgeräte am COM anschliessen, LPT schaltet ein Relais, Messungen werden durchgeführt umschalten usw..
Meine Frage ist und bleibt wie kann ich COM3 nutzen?????
Gruß
Michael |
|
Nach oben |
|
|
Bender
Anmeldungsdatum: 30.12.2004 Beiträge: 18
|
Verfasst am: 23.01.2005, 00:54 Titel: |
|
|
Hmmm, so sollte es gehen:
Gehe in den Gerätemanager. (rechtsklick auf arbeitsplatz -> eigenschaften -> GeräteManager) dort müsstest du dann den Punkt "Anschlüsse (COM und LPT)" oder so ähnlich finden. Öffne diesen Punkt. Wenn die Karte korrekt installiert ist hast du nun hier COM1, COM2 und COM3. Rechtsklicke auf COM3 -> Eigenschaften -> Resourcen. Bei E/A-Bereich hast du nun die Adresse des COM Ports. Die kannst du einfach in QB angeben und so verwenden wie die von COM1 und COM2...ich hoffe, es hilft...
Gruss
Zusatz: Die Hexadezimal Adresse kannst du mit dem Windows Rechner umrechnen start -> ausführen: calc -> enter -> Ansicht -> Wissenschaftlich . HEX anklicken, hexAdresse eingeben und dann DEC anklicken, Voila |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 23.01.2005, 15:42 Titel: |
|
|
Hallo
dreael hat zu einem ähnlichen Thema diesen Link gepostet:
http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/SerielleKommunikation.html
Dort geht es im letzten Abschnitt genau um deine Frage nach COM3 und 4. Wenn du doch auf meinen Vorschlag zurückkommen willst - das geht auch ohne Relais oder LPT. Es gibt ICs, die das Multiplexen übernehmen können.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
sunny0815
Anmeldungsdatum: 24.11.2004 Beiträge: 28 Wohnort: Ludwigshafen
|
Verfasst am: 23.01.2005, 18:05 Titel: |
|
|
Hallo Bender,
der Hinweis auf den E/A Bereich hört sich gut an, habe aber so noch nicht mit COM gearbeitet, kannst Du mir mal eine Tip geben wie die Alternative so zu OPEN "com3:4800,N,8,1,ds0,cs0,cd0,bin" FOR RANDOM AS 1 - aussehen könnte.
Beim deren Hinweis auf Call Interupt blicke ich es keinen Meter.
Danke.
Gruß
Michael
P.S nbin nächste Woche nicht Zuhause, melde mich daher er am Sonnabend |
|
Nach oben |
|
|
Steini63
Anmeldungsdatum: 11.11.2004 Beiträge: 28 Wohnort: 30926 Seelze
|
Verfasst am: 24.01.2005, 21:11 Titel: |
|
|
Hallo Leute!
Schön, dass ich immer noch als Experte für die serielle Schnittstelle genannt werde. Den Link zu meiner Homepage hat Sebastian allerdings nicht ganz richtig geschrieben, ist nämlich ohne Bindestrich www.FrankSteinberg.de.
Nun aber zu Sache:
In einem PC sind sind Ressourcen wie Interrupt(IRQ)- oder DMA-Kanäle leider sehr begrenzt. Unter DOS war es auch nicht möglich, einen IRQ-Kanal auf mehrere Hardware-Bausteine zu verteilen, wie Windows es kann (fragt mich dazu bitte aber nichts genaueres!). Naja, jedenfalls liegen unter DOS traditionell je zwei serielle Anschlüsse auf einem IRQ-Kanal. Die Portdressen (E/A-Adressen) sind aber jeweils verschieden, hier die Standardwerte:
COM1 = Basisadresse &H3F8 IRQ4
COM2 = Basisadresse &H2F8 IRQ3
COM3 = Basisadresse &H3E8 IRQ4
COM4 = Basisadresse &H2E8 IRQ3
Wenn du unter Windows arbeitest, überprüfe diese Angaben bitte wie im Beitrag von Bender beschrieben.
QBasic arbeitet mit den Interrupts. Geht ein Zeichen auf der seriellen Schnittstelle ein, wird ein Hardware-Interrupt ausgelöst, auf den QBasic IM HINTERGRUND reagiert und die Zeichen im Empfangspuffer ablegt. Auch wenn das Programm eigentlich gerade mit anderen Dingen beschäftigt ist, geht kein Zeichen verloren!
Du kannst also COM1 und COM3 nicht gleichzeitig nutzen. Brauchst du aber vielleicht auch garnicht (siehe nächster Absatz). Aber erstmal muss du ja an COM3 rankommen, und zwar indem du Basic überlistest. Es liest beim Öffnen der Schnittstelle die E/A-Basisadressen aus dem BIOS-Datenbereich (im Hauptspeicher) aus. Wenn du da jetzt die Basisadresse von COM1 mit der von COM3 überschreibst (POKE), wird auf COM3 gelesen/geschrieben. Der Interrupt war ja eh derselbe (s.o.). Dazu gibt's dieses Beispiel:
http://www.FrankSteinberg.de/SOURCE/COM3UND4.BAS
Mein Vorschlag zu deinem Problem:
1. COM1 mit den entsprechenden Parametern öffnen
2. pH-Wert und die Temperatur messen
3. COM1 schließen
4. Basisadresse von COM3 in den BIOS-Datenbereich von COM1 POKEn
5. COM1 (ist tatsächlich COM3) mit den entsprechenden Parametern öffnen
6. Dichte messen
7. COM1 (ist tatsächlich COM3) schließen
4. Basisadresse von COM1 in den BIOS-Datenbereich von COM1 POKEn
weiter mit Punkt 1.
Viel Erfolg
Steini _________________ Viele Grüße Steini
http://www.FrankSteinberg.de +++++++ Planung ist das Ersetzen des Zufalls durch den Irrtum +++++++ |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
|