Druckerport-DLL einbinden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

DeadDealer

Gast

Betreff: Druckerport-DLL einbinden

BeitragMi, Okt 13, 2004 18:35
Antworten mit Zitat
Moin Smile

Wir machen grad in der Schule ein witziges Projekt. Wir bauen einen Roboter, der Bierflaschen öffnen kann Very Happy
Wir steigen jetzt von Rapid-Q auf BlitzPlus um, und wir kommen gut vorran. Wir können jetzt schon die einzelnen Bewegungsachsen mit einem stinknormalen Gamepad steuern, nur leider erst in der Theorie. Mir als Programmierer der Software macht die DLL zu schaffen.

Bei Rapid-Q sah der Aufruf der DLL-Funktionen so aus:

Code: [AUSKLAPPEN]

'Funktionen aus "inpout32.dll" laden:
DECLARE FUNCTION INP32 LIB "INPOUT32.DLL" ALIAS "Inp32" (Adresse AS INTEGER) AS INTEGER
DECLARE SUB OUT32 LIB "INPOUT32.DLL" ALIAS "Out32" (Adresse AS INTEGER, Wert AS INTEGER)

'Werte für LPT1 vorbelegen:
BasAdr% = &h378          'Wert für LTP

'Druckerport zum Start der Software resetten (alle Datenausgänge=0 setzen)
OUT32 BasAdr%, o         'Datenausgänge werden hier auf Null gesetzt


Wie man sieht ist die Steuerung hier ganz einfach. Die DLL habe ich auf http://www.logix4u.net/inpout32.htm gefunden.

Bei BlitzPlus liegt es eigendlich nur an der Syntax, sprich wie man z.B. die Funktion OUT32 (verantwortlich für die Motorsteuerung) in BlitzPlus anwenden muß. Generell muß man der Funktion nur die Port-Adresse und einen Wert zwischen 0 und 255 geben, dann fluppt alles.

sbrog

BeitragMi, Okt 13, 2004 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
sie dir mal den Befehl "Calldll " an.

Oder frag mal nach, wie man libs einbindet. (Da kann ich dir nicht so gut helfen )

bruZard

BeitragMi, Okt 13, 2004 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst einen Stream auf LPT1: oder jeden anderen Port öffnen und dann die Steuerung per WriteByte übernehmen ... genauere Infos dazu habe ich leider nicht.
Ansonsten bleibt wirklich nur die DLL Steuerung. Frage an die anderen: Unterstützt BlitzPlus auch den einfachen Zugriff auf System-DLL's via DECLS?
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Chester

BeitragMi, Okt 13, 2004 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool, kann man mit BB extern angschlossene Sachen wie sowas steuern?
Also das wäre mal was Cooles

D2006

Administrator

BeitragMi, Okt 13, 2004 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
@BruZard:
ja natürlich



musst mal Suchen. Hatten wir vor nicht allzu langer zeit erst.

@chester

wher your only limit is your imagination.
Ich hab schon LEDs mit BlitzPlus angesteuert.

MfG

Chester

BeitragMi, Okt 13, 2004 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow Geil Krass Ober Mega Ober Affen Geil Exclamation Exclamation Exclamation Exclamation Exclamation Exclamation Exclamation


Edit: Und was ist mit Blitz3D?

Edit2: Wäre cool wenn mal jemand ein Tut darüber schreiben würde

Edit3 : Deutsche
  • Zuletzt bearbeitet von Chester am Mi, Okt 13, 2004 19:26, insgesamt 2-mal bearbeitet
 

Timo

BeitragMi, Okt 13, 2004 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
funzt mit B3d genauso Wink
 

DeadDealer

Gast

BeitragMi, Okt 13, 2004 19:37
Antworten mit Zitat
D2006 hat Folgendes geschrieben:
@BruZard:
[...]
Ich hab schon LEDs mit BlitzPlus angesteuert.

MfG


Bei unserer Hardware sieht das auch so aus, nur daß da neben den Kontroll-LEDs noch Transistoren dran hängen Wink
Dann werd ich es mal mit CallDLL versuchen, danke für den Tipp!

DA

BeitragMi, Okt 13, 2004 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
@ D2006
Was ist den ein Led? Embarassed


Thx
Darkangel
Deutscher Blitz Basic Chat
 

Timo

BeitragMi, Okt 13, 2004 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Leds sind kleine süße funkelnde Leuchtdioden. Die Anzeige an deinem Computer, ob er rattert oder nicht, ist ein orangenes LED Smile

DA

BeitragMi, Okt 13, 2004 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Achja, dat gibs auch an der Xbox!
Ok, wollt nicht weiter stören.
Deutscher Blitz Basic Chat

simi

BeitragDo, Okt 14, 2004 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Zurück zum Thema, also ich würde eine Decls-Datei machen:

Code: [AUSKLAPPEN]

.lib "inpout32.dll"
Out32(Adresse%, Wert%):"Out32"


Dann kannst du Out32 wie ein normaler Befehl benutzen. Die inpout32.dll muss im decls ordner sein.

cu simi

Jan_

Ehemaliger Admin

BeitragDo, Okt 14, 2004 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, im Code ordner!
between angels and insects

simi

BeitragDo, Okt 14, 2004 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
@Jan_: nur wenn du exe erstellst, beim starten vom Editor nicht....
 

DeadDealer

BeitragDo, Okt 14, 2004 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
simi hat Folgendes geschrieben:
Zurück zum Thema, also ich würde eine Decls-Datei machen:

Code: [AUSKLAPPEN]

.lib "inpout32.dll"
Out32(Adresse%, Wert%):"Out32"


Dann kannst du Out32 wie ein normaler Befehl benutzen. Die inpout32.dll muss im decls ordner sein.

cu simi


Also ich hab eine Datei inpout32.decls im Ordner BlitzPlus\userlibs mit dem Code eingetragen (einen Ordner "decls" oder "code" hab ich nicht im Stammordner von BP).
Als ich BP neu gestartet habe, wurde die Funktion Out32 wie die anderen Befehle gelb angezeigt. Aber bei der Eingabe:
Code: [AUSKLAPPEN]

BasAdr  = "&h378"
SetData = 255
Out32(BasAdr,SetData)

passiert nichts Sad Egal ob nur F5 oder als EXE

D2006

Administrator

BeitragDo, Okt 14, 2004 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
nur so als Frage:

Hast du auch was angesteckt?

der Wert 255 sorgt dafür, dass auf allen 8 Ausgängen ein Strom mit der Spannung 5V fließt.

Eigentlich dürftest du. wenn du zB eine rote LED mit nem 270er Vorwiderstand angeschlossen hast, nicht viel sehen.
Denn der Befehl schaltet die LED ein, dass ist sie aber sowieso seit Windowsstart.

MfG


EDIT:
ach und was ich auch noch sehe. die Adresse muss ein Integer sein. Bei dir ist sie ein String. Außerdem schreibt man in BB Hexwerte mit einem $ davor. Also $378. (oder gleich 888, kann man sich auch besser merken Wink )
 

DeadDealer

BeitragDo, Okt 14, 2004 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab für das Anzeigen bereits eine passende Lösung, eine selbst gelötete Relais-Karte mit 8 Relais und jeweils 2 Kontrol-LEDs (Relais hat angezogen / fällt ab). Die Stromversorgung läuft über USB. In Rapid-Q hab ich dafür auch ne eigene kleine Applikation geschrieben. An der Ausgabemöglichkeit mangelt es nicht Wink

Bin grad wieder online gekommen, ich probiers mal mit dem Integer. Danke für den Hinweis Smile
 

DeadDealer

BeitragDo, Okt 14, 2004 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
DANKE DANKE DANKE!!!
Hatte nicht erkannt daß ich aus Versehn in der .decls Datei ein $ anstatt % gemacht habe. Jetzt klappt es hervorragend Very Happy
Damit können wir endlich unsere Motoren in Echtzeit ansteuern Very Happy *alle abknutsch*

PS: *Staun* Shocked
Hab grad eine kleine Testsoftware für die Motorsteuerung geschrieben. Der Motor dreht sich 10(!) mal schneller als vorher Very Happy Da haben sich die 60 Euro wirklich gelohnt Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group