Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Lpt ansprechen (newbie)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
07.04.2003, 09:43 Uhr
~NewBie
Gast


Hi !
Also wie aus dem Titel vieleicht schon erahnen kann, möchte ich den LPT ansprechen. Ich hab eine Karte mit mehreren LEDs die als erstes einfach mal nur blinken lassen möchte. Kann mir jemand sagen wo ich ein Bsp. Script finde...?

Wäre echt super.

Kleine Infos: OS: Windoof XP (o. Linux RedHat 8)
Compieler unter Windoof: Free Comandline Tools von Borland
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.04.2003, 11:32 Uhr
~Heiko
Gast


Also entweder du machst das mit WriteFile oder du machst das mit assembler (hiervor sei jedoch gewarnt. Ist nur mal zum testen ganz gut)

assembler:

UINT portid,value;

portid =0x0378;

value = 0x55;

__asm mov edx,portid;
__asm mov eax,value;
__asm out dx,ax;

hier sollte jetzt jede zweite LED leuchten weil 0x55 01010101 entspricht.

die andere lösung sollte in etwa so gehen (glaub ich zumindest ich selbst hab immer nur com1 verwendet):

HANDLE h_lpt = CreateFile( "LPT1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL, NULL);

WriteFile(); hier musst du mal nachgucken welche parameter der genau haben will weiss ich nicht aus dem kopf

CloseHandle(h_lpt);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.04.2003, 11:43 Uhr
~NewBie
Gast


Hi !

Ich dank dir erstmal, nach ein wenig googlen bin ich auch auf CreateFile("LPT1", gestossen.... ich denk damit werde ich es auch versuchen.

Mein Problem ist halt jetzt nur das WriteFile.... falls dir noch was einfällt wäre ich dir sehr dankbar.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.04.2003, 12:28 Uhr
~Heiko
Gast


Wie gesagt ich habe mit lpt noch nichts gemacht. Ich vermute aber das du erstmal immer nur ein Byte übertragen willst um deine LED's zu setzen.
Kannst ja mal so probieren, wenn das nicht geht weiss ich es auch nicht aus dem Hut

unsigned long nBytesWritten;

char outbuffer
outbuffer = 0x55 //jede zweite LED leuchtet

WriteFile(h_lpt, &outbuffer, 1, &nBytesWritten, NULL);

falls das nicht geht kannst du ja noch mal versuchen das ganze in eine Schleife zu packen, es kann sein das er die bits nur kurz setzt und die dann sofort wieder auf default gehen, dann würdest du deine LED's nur kurz leuchten sehen.

Wenn das nicht funzt hoffe ich das dir die anderen Forumsteilnehmer weiterhelfen können
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.04.2003, 13:09 Uhr
~NewBie
Gast


Noch eine kleine Frage hätte ich...

Wenn ich jetzt was an den LPT schreibe, sollte ich es doch auch
wieder lesen können...oder?

Logischer weise mit ReadFile, aber wie ReadFile(parallel_handle,... und dann?

Danke nochmal für deine Hilfe!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.04.2003, 13:15 Uhr
~Heiko
Gast


ist analog zu WriteFile allerdings weiss ich nicht ob du den Spass den du vorher rausgeschrieben hast gleich wieder einlesen kannst. (ich weiss halt nicht ob er wieder auf default werte geht. Wenn die hardware die aussen anliegt jedoch die pegel hält sollte das einlesen der alten werte kein problem sein. )

unsigned long nBytesRead;

char inbuffer

ReadFile(h_lpt, &inbuffer, 1, &nBytesRead, NULL);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.04.2003, 13:27 Uhr
~NewBie
Gast


Der Compieler raucht schon mal drüber ohne zu maulen.
Ich werd es wenn ich @Home bin mal probieren.
Werd mich dann mal melden wenn es geklapt hat oder auch nicht.

Danke !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.11.2004, 01:45 Uhr
ronschulz



Wie habt ihr das nun gemacht? Ich bekomme das nicht hin.... =( Möchte auch den LPT-Port auslesen. Kann mir dabei jemand helfen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
26.11.2004, 01:53 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ach stimmt das hatten wir schon mal... indem fall habe ich das aber nur mal mit assembler probiert und auch kein einlesen sondern nur schreiben... das würde ich allerdings nicht empfehlen assembler mitten in deinem proggie zu verwenden. da macht man mehr kaputt als das am ende was geht... eventeuell bekommst du zu dem thema auf www.c-plusplus.de/forum noch informationen... das ist ein wesentlich grösserer forum (wo die dich allerdings auch gleich zur sau machen wenn du deine frage schlecht formulierst und nicht vorher ausgiebig die forumssuche betätigt hast)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
26.11.2004, 02:47 Uhr
ronschulz



Hm. Ok, bloss haben die beiden hier über "CreateFile".... es versucht und es hört sich so an, als ob das auch alles soweit ging. Bloss wie?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: