Druckerport-DLL einbinden
Übersicht

DeadDealerGastBetreff: Druckerport-DLL einbinden |
![]() Antworten mit Zitat |
|
---|---|---|
Moin ![]() Wir machen grad in der Schule ein witziges Projekt. Wir bauen einen Roboter, der Bierflaschen öffnen kann ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
sie dir mal den Befehl "Calldll " an.
Oder frag mal nach, wie man libs einbindet. (Da kann ich dir nicht so gut helfen ) |
||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cool, kann man mit BB extern angschlossene Sachen wie sowas steuern?
Also das wäre mal was Cooles |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
@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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow Geil Krass Ober Mega Ober Affen Geil ![]() ![]() ![]() ![]() ![]() ![]() ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
funzt mit B3d genauso ![]() |
||
DeadDealerGast |
![]() 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 ![]() Dann werd ich es mal mit CallDLL versuchen, danke für den Tipp! |
||
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ D2006
Was ist den ein Led? ![]() Thx Darkangel |
||
Deutscher Blitz Basic Chat |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Leds sind kleine süße funkelnde Leuchtdioden. Die Anzeige an deinem Computer, ob er rattert oder nicht, ist ein orangenes LED ![]() |
||
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achja, dat gibs auch an der Xbox!
Ok, wollt nicht weiter stören. |
||
Deutscher Blitz Basic Chat |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein, im Code ordner! | ||
between angels and insects |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Jan_: nur wenn du exe erstellst, beim starten vom Editor nicht.... | ||
DeadDealer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
DeadDealer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() Bin grad wieder online gekommen, ich probiers mal mit dem Integer. Danke für den Hinweis ![]() |
||
DeadDealer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
DANKE DANKE DANKE!!!
Hatte nicht erkannt daß ich aus Versehn in der .decls Datei ein $ anstatt % gemacht habe. Jetzt klappt es hervorragend ![]() Damit können wir endlich unsere Motoren in Echtzeit ansteuern ![]() PS: *Staun* ![]() Hab grad eine kleine Testsoftware für die Motorsteuerung geschrieben. Der Motor dreht sich 10(!) mal schneller als vorher ![]() ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group