|
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 |
srsgp
Anmeldungsdatum: 30.01.2013 Beiträge: 15
|
Verfasst am: 06.06.2017, 18:03 Titel: Windows 10 64 Bit |
|
|
Ich habe eine PCIe Karte als Ersatz für den Parallelport in meinem PC mit Windows 10 64 Bit eingebaut. Der Hersteller Sunix gibt an, dass die Karte unter Windows 10 64 Bit läuft. Neuester Treiber installiert!
Beim Versuch über Freebasic ein paar LEDs anzusteuern, tat sich nichts.
Ich habe die automatisch vergebenen neuen Portadressen (53240/53232/53216/53224, alle probiert, aber keine Reaktion.
Unter XP und mit einer PCI Karte hat alles funktioniert.
Kann Freebasic unter Windows 10 64 Bit noch nicht verwendet werden? |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 06.06.2017, 21:34 Titel: Wenn möglich, Schaltung lieber über COM-Port anbinden |
|
|
Hallo,
FreeBASIC funktioniert auch unter 64-Bit-Windows-Versionen, einschließlich Windows 10. Man kann inzwischen auch Programme exklusiv für 64-Bit kompilieren lassen (native 64-Bit-Anwendungen), die dann nur unter 64-Bit laufen.
Anwendungsfälle mit Hardware-Ansteuerung sind aber immer kompliziert und nicht so klar bei der Fehlersuche. In deinem Fall könnte es ja einerseits an Windows 10 oder dem Treiber für die Karte liegen. Vielleicht würde es aber andererseits auch mit Windows XP auf diesem PC mit dieser PCI-Express-Karte nicht funktionieren, sodass es an der Karte bzw. ihrem Treiberdesign liegt. Unklar. Vermutlich hat speziell mit deiner Karte auch noch nie jemand mit FreeBASIC versucht, den Paralleport der Karte anzusteuern, erst Recht nicht unter Windows 10. Also noch unerprobt.
Ich habe immer und schon lange die Erfahrung gemacht, dass man die COM-Ports viel stressfreier angesteuert bekommt als den Parallelport - egal, ob man eine Steckkarte verwendet oder die Ports auf dem Mainboard integriert sind. Mit der Ansteuerung des Parallelports hatte ich oft schon bei Windows NT/2000 Probleme, sodass ich um Elektronikbastelein mit dem Parallelport zunehmend versucht habe, einen Bogen zu machen. (Während der COM-Port i.d.R. keine Probleme gemacht hat.)
Für die Pins des COM-Ports gibt es auch WinAPI-Funktionen, um DTR usw. explizit anzusprechen, wenn man nicht "konventionell" Daten übertragen möchte.
Beim Parallelport scheinen die Tool-Provider eher davon auszugehen, dass man über eine Abstraktionsschicht wie OPEN LPT Daten an ein Gerät wie einen Drucker übermittelt. Während das vermutlich in den meisten Fällen reibungslos geht, wird es beim Ansteuern der einzelnen Pins über irgendwelche Legacy-Konstrukte wie OUT viel schwieriger.
Der Idealfall wäre vielleicht, wenn du in deine Schaltung einen Mikrocontroller wie einen ATMEL AVR aufnimmst und diesen über einen MAX232 an den COM-Port anbindest. Dann kannst du über ein richtiges Protokoll mit deiner Schaltung kommunizieren wie das AT-Protokoll bei einem Modem und kannst das Ansteuern der Pins des Ports dem Betriebssystem überlassen. Dann könntest du in FreeBASIC mit OPEN COM eine Verbindung zu deiner Schaltung aufbauen und Befehle senden wie
Code: | RELAIS 1 ON
RELAIS 2 OFF
... |
Und der Mikrocontroller kümmert sich dann darum, diese Befehle zu interpretieren / zu verarbeiten und die Peripherie entsprechend zu dirigieren.
Wenn du sowas umsetzt, kannst du von jedem PC - egal, ob Windows oder Linux - mit einem Terminalprogramm wie "good old" HyperTerminal mit deiner Schaltung kommunizieren. Und natürlich auch über ein selbstentwickeltes FreeBASIC-Programm.
Der Weg mit dem Mikrocontroller und USART eröffnet dann auch die nächste Ausbaustufe "USB". Von FTDI gibt es ICs, mit denen man den Mikrocontroller auch per USB mit dem PC sprechen lassen kann. Das Protokoll bliebe dabei das gleiche. Es handelt sich quasi um einen virtuellen COM-Port via USB.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 07.06.2017, 21:03 Titel: |
|
|
Hi,
ob nun PCI oder normaler Printerport Windows behandelt ihn als Druckerport
und lässt keine direkten Port zugriffe darauf zu.
Noch dazu bei 64bit Systemen, da funktionieren selbst ältere Scanner am
Printerport nicht mehr.
Das liegt also nicht an Freebasic.
So ist zumindest meine langjährige Erfahrung.
Wie Sebastian schon beschreibt, bin ich auch auf den Arduino umgestiegen,
der über die USB-Ports programmiert und gesteuert wird. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
srsgp
Anmeldungsdatum: 30.01.2013 Beiträge: 15
|
Verfasst am: 14.06.2017, 10:41 Titel: |
|
|
Hi Sebastian, Volta,
danke für die schnelle Antwort.
Habe bei Sunix, dem PCIe Hersteller nachgefragt, hier die Antwort:
Sehr geehrter Herr Digel,
unser Ingenieur hat schon ihre Methode probiert und sagte, dass Windows 10 die Einschränkung auf den Zugriff auf das Betriebssystem erhöht. Dewegen kann der Benutzer das Betriebssystem nicht änderen, um IO Control zu verwenden. Es hat mit allen Parallel Karte nicht zu tun, sondern mit dem Betriebssystem. Wenn Sie „Access Parallel port register“ möchten, können Sie den API „inpout32/InpOutx64“ (wie der folgende Link) probieren.
http://www.highrez.co.uk/downloads/inpout32/
Ich,srsgp, habe diese InpOutx64 mit der Installdriver.exe installiert und mit Freebasic getestet. Kein Erfolg! Muss diese InpOut speziell in FB eingebunden werden?
Der Admin Phil schrieb folgendes zurück:
Beitrag von phil » Tue Jun 13, 2017 18:03
Hallo.
1. Ist es die gleiche Karte, die du bei XP benutzt hast? Wenn es eine andere Karte ist, kann es nicht mit InpOut32 kompatibel sein (einige sind, viele sind nicht).
2. Ist Freebasic x86 (32bit) oder x64 (64bit) oder beides? Sie müssen die korrekte DLL (32bit DLL mit 32bit Prozessen) und 64bit DLL mit 64bit Prozessen verwenden.
3. Haben Sie Installdriver.exe ausgeführt, um sicherzustellen, dass der Treiber mit den erforderlichen erhöhten Berechtigungen installiert ist?
Danke,
Phil
Ein Forenteilnehmer, der aber mit VB programmiert, hatte scheinbar Erfolg:
Hallo Phil,
ich benutze InpOut32 seit XP Tagen und habe mich darauf verlassen, um ein einziges computergesteuertes Gerät zu laufen, das für meine Arbeit sehr wichtig ist. Mit Win 7 und dann Win 8, hatte ich einige Probleme aufstehen und laufen, aber schließlich war erfolgreich.
Win 10 war problematisch, da meine PCIe Parallel Port Card nicht mehr kompatibel war. Die Lösung war relativ einfach. Ich habe eine neue Karte gekauft, die mit Win 10 kompatibel ist. Modell SI-PEX10011. Ich schlage vor, mit einem Drucker zuerst zu testen, da der Fahrer mehrmals installiert werden musste, um es aufzurichten und zu laufen. Die Portadresse in meiner VB-Applikation musste auf die neue Adresse von E010 geändert werden. Ich habe die neueste DLL installiert und es installiert ohne Drama. Das System arbeitet jetzt wie früher und ich bin sehr erleichtert.
Frage an Sebastian, Volta, alle, hat jemand diese InpOutx64 schon mit FB getestet?
Danke für eure Antwort
srsgp |
|
Nach oben |
|
|
St_W
Anmeldungsdatum: 22.07.2007 Beiträge: 955 Wohnort: Austria
|
Verfasst am: 14.06.2017, 14:07 Titel: |
|
|
Ich selbst hab es zwar noch nicht probiert aber ich meine mich zu erinnern dass das bereits erfolgreich eingesetzt wurde mit FB. Warum sollte es auch mit FB nicht funktionieren wenn es mit VB funktioniert.
Du musst nichts speziell einbinden, ganz normal wie jede andere Bibliothek auch die Bibliothek (bzw. eine Importbibliothek) mitlinken sowie die entsprechenden Methoden deklarieren (und verwenden ). In diesem Fallen sind das Inp32 und Out32. Wie sieht deine Deklaration aus?
Und was dir bereits gesagt wurde stimmt natürlich: Du musst die 32-bit DLL für 32-bit FreeBasic bzw. 64-bit DLL für 64-bit FreeBasic verwenden. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1243 Wohnort: Ruhrpott
|
Verfasst am: 15.06.2017, 00:16 Titel: |
|
|
Zitat: | ...da der Fahrer mehrmals installiert werden musste... | Es lebe die vollautomatische Übersetzung!
Soweit ich weiß, ist die Installation von inpoutx64 etwas komplizierter als bei den Vorgängerversionen. Siehe dazu
http://www.dllfixis.com/inpoutx64.dll.html
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
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.
|
|