![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Jürgen, 30. 07. 2005, 15:08
hallo,
hoffe jemand kann mir sagen wie ich einzelne pins vom druckerport ansprechen kann.
also ich hab eine led mit dem pluspol auf den 2. pin gelötet und auf den 24. pin den minuspol.
jetzt muss ich den zweiten pin ansprechen und ihn auf high setzen, also auf strom ein.
nur ich krieg des irgendwie nicht hin.
betriebssystem an dem es probiert wird windwos 98.
programmcode:
outp(0x378,???); -> ist ja schon veraltete methode
0x378,??? -> was muss ich da jetzt anstelle von ??? einsetzen damit ich den 2 pin auf high schalten kann.
wäre sehr dankbar für hilfreiche antworten
Die folgende Nachricht zum Thema stammt von: Christian Kruse, 30. 07. 2005, 15:39
你好 Jürgen,
»» outp(0x378,???); -> ist ja schon veraltete methode
»»
»» 0x378,??? -> was muss ich da jetzt anstelle von ??? einsetzen damit ich
»» den 2 pin auf high schalten kann.
Müsste so sein: Entweder 2 (das zweite Bit ist da ja auf 1 gesetzt) oder ~2
(also das Komplement, alle Bits 1 ausser dem zweiten); hängt davon ab, ob
positive oder negative Logik, weiss ich gerad nicht auswendig.
再见,
克里斯蒂安
--
Wenn auf Erden alle das Schoene als schoen erkennen, so ist dadurch schon das Haessliche bestimmt.
http://wwwtech.de/
Die folgende Nachricht zum Thema stammt von: Jürgen, 30. 07. 2005, 15:46
»» 你好 Jürgen,
»»
»» »» outp(0x378,???); -> ist ja schon veraltete methode
»» »»
»» »» 0x378,??? -> was muss ich da jetzt anstelle von ??? einsetzen damit ich
»» »» den 2 pin auf high schalten kann.
»»
»» Müsste so sein: Entweder 2 (das zweite Bit ist da ja auf 1 gesetzt) oder ~2
»» (also das Komplement, alle Bits 1 ausser dem zweiten); hängt davon ab, ob
»» positive oder negative Logik, weiss ich gerad nicht auswendig.
»»
»» 再见,
»» 克里斯蒂安
»»
also ich hab des jetzt so probiert aber nix klappt.
0x378,2 -> geht net
0x378,0x02 -> auch net
die led ist die ganze zeit aus. des heisst also ich muss den pin auf high stellen.
Die folgende Nachricht zum Thema stammt von: Christian Kruse, 30. 07. 2005, 15:50
你好 Jürgen,
»» »» »» outp(0x378,???); -> ist ja schon veraltete methode
»» »» »»
»» »» »» 0x378,??? -> was muss ich da jetzt anstelle von ??? einsetzen damit ich
»» »» »» den 2 pin auf high schalten kann.
»» »»
»» »» Müsste so sein: Entweder 2 (das zweite Bit ist da ja auf 1 gesetzt)
»» »» oder ~2 (also das Komplement, alle Bits 1 ausser dem zweiten); hängt
»» »» davon ab, ob positive oder negative Logik, weiss ich gerad nicht
»» »» auswendig.
»»
»» also ich hab des jetzt so probiert aber nix klappt.
»»
»» 0x378,2 -> geht net
»» 0x378,0x02 -> auch net
»»
»» die led ist die ganze zeit aus. des heisst also ich muss den pin auf high
»» stellen.
Ich sagte ja, du wirst gucken müssen ob positive oder negative Logik.
Entweder 0x2 oder ~0x2, wobei ~ das B-1-Komplement des Bitmusters erstellt:
~010000 = 101111
~ ist die C-Notation; kA, welche Sprache du benutzt, denke aber, dass die
auch so einen Operator hat.
再见,
克里斯蒂安
--
Das Leben ist wie ein Kartenspiel: was dir gegeben wurde, ist vorbestimmt. Doch wie du damit spielst, ist deine Entscheidung.
http://wwwtech.de/
Die folgende Nachricht zum Thema stammt von: Jürgen, 30. 07. 2005, 16:05
»» 你好 Jürgen,
»»
»» »» »» »» outp(0x378,???); -> ist ja schon veraltete methode
»» »» »» »»
»» »» »» »» 0x378,??? -> was muss ich da jetzt anstelle von ??? einsetzen damit ich
»» »» »» »» den 2 pin auf high schalten kann.
»» »» »»
»» »» »» Müsste so sein: Entweder 2 (das zweite Bit ist da ja auf 1 gesetzt)
»» »» »» oder ~2 (also das Komplement, alle Bits 1 ausser dem zweiten); hängt
»» »» »» davon ab, ob positive oder negative Logik, weiss ich gerad nicht
»» »» »» auswendig.
»» »»
»» »» also ich hab des jetzt so probiert aber nix klappt.
»» »»
»» »» 0x378,2 -> geht net
»» »» 0x378,0x02 -> auch net
»» »»
»» »» die led ist die ganze zeit aus. des heisst also ich muss den pin auf high
»» »» stellen.
»»
»» Ich sagte ja, du wirst gucken müssen ob positive oder negative Logik.
»» Entweder 0x2 oder ~0x2, wobei ~ das B-1-Komplement des Bitmusters erstellt:
»»
»» ~010000 = 101111
»»
»» ~ ist die C-Notation; kA, welche Sprache du benutzt, denke aber, dass die
»» auch so einen Operator hat.
»»
»» 再见,
»» 克里斯蒂安
»»
ja des hab ich jetzt auch probiert.
0x378,~2
0x378,~0x02
gehen auch beide net.
programmiersparche: c
vollständiger quellcode:
int main(void) {
0x378,???
return 0;
}
Die folgende Nachricht zum Thema stammt von: Hopsel, 30. 07. 2005, 16:19
Hi,
»» int main(void) {
»» 0x378,???
»» return 0;
»» }
was soll das denn bewirken? Meiner Meinung nach völlig sinnfrei...
Ich bin kein C-Crack, aber die Zeile 2 macht gar nix. Egal, welche Zahl du für ??? einsetzt. Da könnte ich auch "pups" reinschreiben und hoffen, dass die Luft stinkt. :)
MfG Hopsel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
Die folgende Nachricht zum Thema stammt von: Feststellung, 30. 07. 2005, 17:34
Hallo,
»» Ich bin kein C-Crack, aber die Zeile 2 macht gar nix. Egal, welche Zahl du für ??? einsetzt. Da könnte ich auch "pups" reinschreiben und hoffen, dass die Luft stinkt. :)
Warum sollte den "pups" gehen?
Die folgende Nachricht zum Thema stammt von: Hopsel, 30. 07. 2005, 19:15
Hi,
»» Warum sollte den "pups" gehen?
das tut es ja nicht...
MfG Hopsel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
Die folgende Nachricht zum Thema stammt von: Feststellung, 31. 07. 2005, 00:57
Hallo,
verstehst du nicht?
»» int main(void) {
»» 0x378,???;
»» return 0;
»» }
wenn statt ??? eine Zahl stehen würde, wäre das syntaktisch korrekt, obwohl es jetzt vielleicht nicht den gewünschten Effekt erzielt. Sollte allerdings statt den Fragezeichen "pups" stehen, dann meckert zumindest schon ma der Compiler und man kann nicht einfach "pups" hinschreiben... ;-)
Gruß
Die folgende Nachricht zum Thema stammt von: Christoph Zurnieden, 31. 07. 2005, 02:14
Hi,
»» »» int main(void) {
»» »» 0x378,???;
»» »» return 0;
»» »» }
»»
»» wenn statt ??? eine Zahl stehen würde, wäre das syntaktisch korrekt, obwohl es jetzt vielleicht nicht den gewünschten Effekt erzielt. Sollte allerdings statt den Fragezeichen "pups" stehen, dann meckert zumindest schon ma der Compiler und man kann nicht einfach "pups" hinschreiben... ;-)
Was hast Du denn für einen Compiler?
$ cat test1.c
int main(void) {
0x378,"pups";
return 123;}
$ gcc3 --version
gcc3 (GCC) 3.4.1
$ gcc3 -std=c99 -W -Wall -o test1 test1.c
test1.c: In function `main':
test1.c:2: Warnung: linker Operand des Komma-Ausdrucks hat keinen Effekt
test1.c:2: Warnung: Anweisung ohne Effekt
$ ./test; echo $?
123
Klappt doch einwandfrei!
$ splint test1.c
Splint 3.1.1.2 --- 11 Jul 2004
test1.c: (in function main)
test1.c:2:1: Statement has no effect: 0x378
Statement has no visible effect --- no values are modified. (Use -noeffect to
inhibit warning)
Finished checking --- 1 code warning
so short
Christoph Zurnieden
Die folgende Nachricht zum Thema stammt von: Hopsel, 31. 07. 2005, 09:27
Hi Christoph Zurnieden!
»» Klappt doch einwandfrei!
Das Kompilieren vielleicht. Hast du was gerochen?
MfG Hopsel
--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
Die folgende Nachricht zum Thema stammt von: Christoph Zurnieden, 31. 07. 2005, 18:47
Hi,
»» »» Klappt doch einwandfrei!
»»
»» Das Kompilieren vielleicht. Hast du was gerochen?
Nein. Kann aber auch meinem besonders emissionsarmen Rechner liegen, bin jetzt aber zu faul, dafür extra den Kohlefilter abzuschrauben, ist 'ne Heidenfummelei.
Die folgende Nachricht zum Thema stammt von: Der Martin..., 30. 07. 2005, 22:49
Hallo Christian,
»» Müsste so sein: Entweder 2 (das zweite Bit ist da ja auf 1 gesetzt) oder ~2 (also das Komplement, alle Bits 1 ausser dem zweiten); hängt davon ab, ob positive oder negative Logik, weiss ich gerad nicht auswendig.
Fast. ;)
Erstens: Der richtige Zahlenwert ist nicht 0x02, sondern 0x01, weil auf Pin2 der Druckerschnittstelle das Bit0 liegt (Pin 1 ist /STROBE).
Zweitens: Die Druckerschnittstelle verwendet positive Logik, deshalb 0x01 und nicht 0xFE.
Drittens: Die Druckerschnittstelle hat oft nur TTL-Ausgänge. Sie liefert also keinen Strom, sondern schaltet nur im Aus-Zustand gegen Masse und braucht daher einen Pull-Up-Widerstand.
So long,
Martin
Die folgende Nachricht zum Thema stammt von: Ashura, 30. 07. 2005, 22:52
Hallo Martin...
^^^?
Jetzt muss ich doch mal fragen: Ist alles in Ordnung mit deinem Account?
Einen schönen Samstag noch.
Gruß, Ashura
--
Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 21: Toolbars
Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]
Die folgende Nachricht zum Thema stammt von: Der Martin..., 30. 07. 2005, 23:31
Hallo Ashura,
»» Hallo Martin...
»» ^^^?
»» Jetzt muss ich doch mal fragen: Ist alles in Ordnung mit deinem Account?
Hmm, nicht wirklich.
Seit heute abend bekomme ich beim Versuch, ein Posting abzuschicken, die Fehlermeldung "Um unter diesem Namen posten zu können, müssen Sie sich authentifizieren". Dabei hab ich nichts verändert... alle meine User-Einstellungen werden auch korrekt angewendet, Postings werden als gelesen markiert oder ausgeblendet, nur meinen Nick will der Forumsserver plötzlich nicht mehr akzeptieren. Obwohl ich vorhin probehalber schon den Namensschutz abgestellt habe. Und ein lokales Problem auf _einem_ Rechner ist es auch nicht, auf meiner zweiten Mühle habe ich das gleiche Ergebnis. In Firefox, IE und Opera, völlig egal. Scheint also wirklich eine Spinnerei des selfhtml-Servers zu sein. :(
Ich wollte aber, bevor ich hier um Hilfe schreie, erstmal einen Tag oder zwei abwarten, denn viele Probleme lösen sich bekanntlich durch Abwarten.
Schönes Wochenende noch,
Martin
Die folgende Nachricht zum Thema stammt von: Ashura, 31. 07. 2005, 00:25
Hallo Martin.
»» Seit heute abend bekomme ich beim Versuch, ein Posting abzuschicken, die Fehlermeldung "Um unter diesem Namen posten zu können, müssen Sie sich authentifizieren".
Dein alter Account lässt sich nicht einfach so abschieben. ;-)
Kannst du unter diesem mit deinem Namen posten?
»» Scheint also wirklich eine Spinnerei des selfhtml-Servers zu sein. :(
Naja, ich drücke dir die Daumen, dass das bald wieder in Ordnung ist.
»» Ich wollte aber, bevor ich hier um Hilfe schreie, erstmal einen Tag oder zwei abwarten, denn viele Probleme lösen sich bekanntlich durch Abwarten.
Vorbildlich. ;-)
Einen schönen Sonntag noch.
Gruß, Ashura
--
Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
30 Days to becoming an Opera8 Lover -- Day 21: Toolbars
Meine Browser: Opera 8.02 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
[Deshalb frei! - Argumente pro freie Software]
Die folgende Nachricht zum Thema stammt von: Christian Kruse, 30. 07. 2005, 23:11
你好 Martin,
»» »» Müsste so sein: Entweder 2 (das zweite Bit ist da ja auf 1 gesetzt) oder
»» »» ~2 (also das Komplement, alle Bits 1 ausser dem zweiten); hängt davon
»» »» ab, ob positive oder negative Logik, weiss ich gerad nicht auswendig.
»»
»» Fast. ;)
Hehe, man soll halt nicht von üblichen Micro-Prozessoren auf PC-Hardware
abstrahieren ;)
»» Zweitens: Die Druckerschnittstelle verwendet positive Logik, deshalb 0x01
»» und nicht 0xFE.
Davon war ich fast ausgegangen (ist ja üblich), wollte aber die Möglichkeit
der negativen Logik erwähnt haben, da ich es, wie gesagt, nicht nachgeguckt
habe ;) Aber danke für die Bestätigung.
再见,
克里斯蒂安
--
Unsere Vorstellungen von der Ewigkeit sind genauso nuetlich wie die Mutmassungen eines Kuehkens ueber die Aussenwelt bevor es die Eierschale aufbricht.
http://wwwtech.de/
Die folgende Nachricht zum Thema stammt von: Christoph Zurnieden, 31. 07. 2005, 02:01
Hi,
»» Fast. ;)
Ja, dem kann ich mich anschließen ;-)
»» Zweitens: Die Druckerschnittstelle verwendet positive Logik, deshalb 0x01 und nicht 0xFE.
Für den fraglichen Pin ist das so korrekt, aber was ist mit 0,1 und 3? ;-)
»» Drittens: Die Druckerschnittstelle hat oft nur TTL-Ausgänge. Sie liefert also keinen Strom, sondern schaltet nur im Aus-Zustand gegen Masse und braucht daher einen Pull-Up-Widerstand.
Wenn ich da mal den Jan zitieren darf:
Q: I'd like to power a low component count device via an output port bit on the pc's parallel port. Does anyone know the current sourcing spec for an output port bit?
A: The data outputs on the original parallel port were 74LS374 outputs, which can source 2.6 milliamps at 2.4 guaranteed, 3.1V typical. The data outputs on most parallel ports are at least as strong as the original port's, but no guarantees. If you need 5V, you can use one of the high-efficiency step-up regulators from Maxim & others (Max756). The newer port controller chips often have IEEE-1284 Level 2 outputs, which can source 12 milliamps at 2.5V. The Control outputs were originally open-collector TTL with 4.7K pullups, so these are less useful as current sources.
Es ist verdammt nicht viel.
Aber die moderneren Chips mögen etwas "robuster" sein, keine Ahnung. http://www.lvr.com/parport.htm und http://www.beyondlogic.org/index.html wissen da bestimmt mehr drüber.
so short
Christoph Zurnieden
Die folgende Nachricht zum Thema stammt von: Christoph Zurnieden, 30. 07. 2005, 18:36
Hi,
»» betriebssystem an dem es probiert wird windwos 98.
(Bitte beachte, das Windows-NT eine Kerneltreiber dafür benötigt. Nur falls Du Dich mal wundern solltest.)
»» programmcode:
»»
»» outp(0x378,???); -> ist ja schon veraltete methode
ja und? Ist doch Windows! >;->
»» 0x378,??? -> was muss ich da jetzt anstelle von ??? einsetzen damit ich den 2 pin auf high schalten kann.
Probier's aus (für den LCC):
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
int main(){
int i;
for(i=0;i<256;i++){
_outp(0x378,i);
sleep(300);
}
exit(EXIT_SUCCESS);
}
Die Consolenausgabe, was gerade läuft darfst Du selber einbasteln.
so short
Christoph Zurnieden
Die folgende Nachricht zum Thema stammt von: Jürgen, 01. 08. 2005, 13:41
»» Hi,
»»
»» »» betriebssystem an dem es probiert wird windwos 98.
»»
»» (Bitte beachte, das Windows-NT eine Kerneltreiber dafür benötigt. Nur falls Du Dich mal wundern solltest.)
»»
»» »» programmcode:
»» »»
»» »» outp(0x378,???); -> ist ja schon veraltete methode
»»
»» ja und? Ist doch Windows! >;->
»»
»» »» 0x378,??? -> was muss ich da jetzt anstelle von ??? einsetzen damit ich den 2 pin auf high schalten kann.
»»
»» Probier's aus (für den LCC):
»» #include <stdlib.h>
»» #include <conio.h>
»» #include <windows.h>
»» int main(){
»» int i;
»» for(i=0;i<256;i++){
»» _outp(0x378,i);
»» sleep(300);
»» }
»» exit(EXIT_SUCCESS);
»» }
»»
»» Die Consolenausgabe, was gerade läuft darfst Du selber einbasteln.
»»
»»
»» so short
»»
»» Christoph Zurnieden
danke danke danke
seit fünf tagen häng ich jetzt an dem problem.
jetzt geht es und ich muss keine treiber oder sonstige sachen benützen.
vielen dank
:-)))))
Die folgende Nachricht zum Thema stammt von: Manuel B., 01. 08. 2005, 20:32
Hi,
»» also ich hab eine led mit dem pluspol auf den 2. pin gelötet und auf den 24. pin den minuspol.
Keine AHnung, obs schon erwähnt wurde, aber wenn du das ganze ohne Vorwiderstand machst, verabschiedet sich die LED ziemlich schnell und evtl. auch der Treiberbaustein.
Also in jedem Fall nen 470 Ohm Widerstand in Reihe mit der LED löten. Besser ist aber ein zusätzlicher Treiber (Transistor für eine LED oder z.B. ein ULN2004, der allerdings das Signal invertiert. Ich glaub ein ULN 2003 würde nicht invertieren)
© 1998-2006
Impressum, Software: Classic Forum