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:

Parallele Schnittstelle ansteuern?

 
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
DJ555
Gast





BeitragVerfasst am: 16.10.2004, 10:28    Titel: Parallele Schnittstelle ansteuern? Antworten mit Zitat

Hallo!
Wie kann man in QB die Data 0 bis Data 7 Leitungen ansteuern?
Möchte nämlich eine LÜftersteuerung (softwarebasiert) basteln.
Falls Interesse zur Mitarbeit an dem Projekt besteht: DJ555@gmx.net
Würde mich ber Hilfe (Coder) freuen!
Danke im voraus!
DJ555
Nach oben
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 16.10.2004, 10:37    Titel: Antworten mit Zitat

Hi
mit out 888,0 schaltet man die 8 datenausgänge aus mit out 888,255 schält man alle an.
und wegen den ausgängen schalte niemals den lüfter direkt am parallel port sondern nimm relais oder transistoren die was aushalten
du kannst mir ja auch mailen kaibareis@aol.com oder icq=223603724
_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 16.10.2004, 12:33    Titel: XP Antworten mit Zitat

Hallo.

Will dich nicht entmutigen, aber wenn du Win XP hast, kannst du das meist vergessen mit dem Ansteuern der Hardware. missbilligen

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
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 16.10.2004, 12:58    Titel: Re: XP Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
aber wenn du Win XP hast, kannst du das meist vergessen mit dem Ansteuern der Hardware.

Das Beste ist an dieser Stelle immer noch eine partitionierte Festplatte (kleines C: mit FAT 16bit und grosses D: mit NTFS) mit MS-DOS 6.22 und Windows XP als Dual-Boot drauf. So startet man ganz einfach ins DOS und kann dort mit INP() und OUT nach Belieben herumoperieren.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DJ555
Gast





BeitragVerfasst am: 16.10.2004, 13:55    Titel: Antworten mit Zitat

1. Hab ich schon die passendes Hardware fast fertig (mit MOS-FETs!)
2. Habe ich ne Boot-Diskette mit FreeDOS drauf und QBasic.
Ich will die 8 Datenausgänge einzeln ansteuern. Und dann mit Rechteckssignalen die Lüfter dimmen und abschalten.
Nach oben
Skilltronic



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

BeitragVerfasst am: 16.10.2004, 14:58    Titel: Antworten mit Zitat

Hallo !

Die Datenleitungen D0 - D7 werden über die acht Bit des Bytes gesteuert, die du mit

OUT 888, daten

ausgiebst.

Also so:

daten-------- D0 - D7
0-------------00000000
1-------------10000000
2-------------01000000
3-------------11000000
4-------------00100000
5-------------10100000
...
254----------01111111
255----------11111111


Hast du schon eine Idee, wie du das mit dem Dimmen machen willst ?

Sieh mal unter dem Beitrag "QB-Thermometer - dringend." von markus nach. Da geht es um den Temperatursensor SMT 160-30. Das Teil habe ich inzwischen mit ihm zusammen zum laufen bekommen. Damit kannst du ohne zusätzliche Hardware Temperaturen auf 0,2° C genau messen. Basiert auf dem selben Prinzip wie der Dimmer, nur umgekehrt. Du gibst keine Impulslängen vor, sondern misst die, die das Teil ausgibt. Aus dem Verhältnis von 0 zu 1 kannst du direkt die Temperatur in °C berechnen.

Du hast am LPT ja noch ein paar Leitungen frei. An die liesse sich solch ein Sensor anschliessen. Interessant wäre vielleicht noch, die Stromaufnahme der Lüfter mit einem A/D-Wandler zu überwachen. So könnten Störungen erkannt und sogar eine kleine Diagnose wie verschmutzt/blockiert, Kurzschluss oder Leitungsunterbrechung gestellt werden.

Es gibt Programme, die das nutzen des Parallelports unter XP ermöglichen sollen. Ich habe aber erst eins gefunden, das bei mir wirklich funktionierte. Allerdings ging dann der COM-Port nicht mehr...aber das kann auch an mir gelegen haben lächeln

Gruss
Skilltronic
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DJ555
Gast





BeitragVerfasst am: 16.10.2004, 15:22    Titel: Antworten mit Zitat

Das hilft doch schon mal weiter.
Ich hätte mir das dann so gedacht:
(Lüfter 2 an):
out 888, 00100000
wait 1 (wie kann man Millisekunden nehmen?)
loop until....
u.s.w. Muss mich da aber nochmal richtig reinarbeiten.
Deswegen suche ich ja Hilfe.
Nach oben
DJ555



Anmeldungsdatum: 16.10.2004
Beiträge: 1

BeitragVerfasst am: 16.10.2004, 15:34    Titel: Antworten mit Zitat

So. Jetzt habe ich mich registriert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 16.10.2004, 19:05    Titel: RE: Parallele Schnittstelle ansteuern Antworten mit Zitat

Also das mit WAIT ist anders gemeint, WAIT wartet, bis ein bestimmter Port einen bestimmten Wert hat, das hat mit Warten im Sinne von Zeit nichts zu tun. Ich denke das hier wird dir weiterhelfen:
Code:

SUB Delay(Zeit#)
Startzeit# = TIMER
DO
LOOP UNTIL TIMER - Startzeit# >= Zeit#
END SUB


Funktioniert übrigens nicht um Mitternacht grinsen (da wird der Timer ge-resettet)

Achja, Binärzahlen kannst du in QB nicht als solche verwenden, aber du kannst die einzelnen Bits folgendermaßen, unabhängig voneinander setzen:
Code:

Status = 0
Status = Status OR 1  '1. Bit setzen
Status = Status OR 2  '2. Bit..
Status = Status OR 4  '3. Bit
Status = Status OR 8  '4.
...
Status = Status OR 128  '8. Bit setzen
OUT 888, Status

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



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

BeitragVerfasst am: 16.10.2004, 19:33    Titel: Antworten mit Zitat

Hallo

DJ555 hat Folgendes geschrieben:
Ich hätte mir das dann so gedacht:
(Lüfter 2 an):
out 888, 00100000


Ich glaube, da hast du mich falsch verstanden. Du gibst beim OUT-Befehl nur Dezimalzahlen zwischen 0 und 255 an. Diese werden in dem ein Byte grossen Register Nr. 888 als Dualzahl abgelegt, dessen 8 Bit dann die einzelnen Leitungen steuern. Wenn du also NUR Lüfter 2 einschalten willst, dann mit

OUT 888, 4

Vorrausgestezt, du fängst mit Null an zu zählen und Lüfter 2 ist der dritte Lüfter...

Das Dimmen könntest du z.B. so machen, dass du jeder Leitung einen Wert zwischen 0 und 100 zuordnest. Dann lässt du immer wieder eine Schleife durchlaufen, in der zu Beginn alle Leitungen ausgeschaltet werden. Erreicht der Zählerstand der Schleife den Wert einer Leitung, wird diese eingeschaltet. sagen wir mal Leitung 2 ist auf 50% eingestellt. Dann ist sie fünfzig Schleifendurchggänge aus- und die nächsten 50 lang eingeschaltet. Ich habe auf die Art mal eine Vollfarbleuchtdiode angesteuert. Durch Dimmen von Rot, Grün und Blau konnte man damit jede Mischfarbe erzeugen.

Gruss
Skilltronic
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



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

BeitragVerfasst am: 16.10.2004, 20:35    Titel: Antworten mit Zitat

Ich nochmal.

Zum Setzen einzelner Bits und wie man daraus eine Dezimalzahl macht:

Leitung zwei soll eingeschaltet werden. Dazu werden von deinem Programm irgendwie die folgenden Einträge im Array leitung gemacht:

leitung(0) = 0
leitung(1) = 0
leitung(2) = 1
leitung(3) = 0
...
leitung(7) = 0

Willst du jetzt die entsprechende Dezimalzahl errechnen dann evtl. so:

dezimalzahl = 0
FOR bit = 0 TO 7
dezimalzahl = dezimalzahl + leitung(bit) * 2 ^ bit
NEXT
OUT 888, dezimalzahl

Weil leitung(bit) * 2^bit relativ viel Rechenzeit in Anspruch nimmt, kannst du für einen schnelleren Programmablauf die Stellenwerte der einzelnen Bits direkt als Wert für leitung benutzen. Es sollen z.B. jetzt Leitung 0, 3 und 5 eingeschaltet werden. Dann muss dein Programm anstelle von Nullen und Einsen jetzt folgende Einträge machen

leitung(0) = 1
leitung(1) = 0
leitung(2) = 0
leitung(3) = 8
leitung(4) = 0
leitung(5) = 32
leitung(6) = 0
leitung(7) = 0

Die Dezimalzahl kannst du dann so ausrechnen:

dezimalzahl = 0
FOR bit = 0 TO 7
dezimalzahl = dezimalzahl + leitung(bit)
NEXT
OUT 888,dezimalzahl

Gruss
Skilltronic
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 16.10.2004, 20:40    Titel: Antworten mit Zitat

So habe mir grade mal eben ein Lüftersteuerung gebaut mit drei MOS-FETs (BUZ11). das ganze geht gut und das dimmen geht auch was dann aber inpulsweise geht, so das der Lüfter immer einen Impuls bekommt und er sich wen ich die Spannung wegnehme noch kurz weiter dreht dann wird die Spannung eingeschaltet. das ganze mache ich so wie es Skilltronik gesagt hat mit zwei For Next schleifen als delay.
wer den schaltplan haben will soll mir ne Email schicken (den muss ich halt noch machen lächeln ) und das programm schiecke ich dann auch mit!
_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eisbaer



Anmeldungsdatum: 16.10.2004
Beiträge: 354
Wohnort: Deutschland,Bayern

BeitragVerfasst am: 16.10.2004, 21:49    Titel: Schnittstellen Ansprechen mit QuickBasic Antworten mit Zitat

Hi,

Also für dieses Problem gibt es eine Sehr gute Seite im Web die sich mit der Ansteuerung des Ports aus QuickBasic, Windows und MS-Dos befasst : http://www.franksteinberg.de/

zwinkern mfg Eisbaer
_________________
Eigene Webseite:
http://www.eisbaer-studios.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
M.
Gast





BeitragVerfasst am: 17.10.2004, 23:58    Titel: Argh! Antworten mit Zitat

Es drängt mich anzumerken, daß du die Bemerkung von Meister Skilltronic, wir hätten den SMT-Sensor zusammen zum Laufen gebracht, ruhig ironisch auffassen kannst.
Ohne seine Hilfe würde ich immer noch im Lendenschurz in meiner Höhle sitzen, und verzweifelt Basic-Routinen in die Wände meißeln......

Übrigens empfehle ich -wie schon "Eisbaer" - dringend,
http://www.franksteinberg.de/progss.htm
einem zerebralen Integrationsprozeß zu unterziehen.

Gruß
Markus
Nach oben
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