code für druckerport
-
Als erstes möchte ich euch hier mal euer Forum loben da ich schon viele Ansätze
hier gefunden habe die mir weitergeholfen haben!!!Nun häng ich aber wieder mal bei einem Problem ...
Hab mein Bauteil über Druckerport mit Centronix-Buchse verbunden.
Habe vorher schon mal ein Programm geschrieben wo direkt eine 7segment Anzeige angesteuert wurde.Möchte es dieses mal mit BCD ansteuern und ein Bauteil wandelt das signal dann in 7segment um.<code>
if (x==0){ outport(0x378,63); printf("0"); delay(1000);} //für null
if (x==4){ outport(0x378,102); printf("4"); delay(1000);} // für vier
</code>mir wäre es aber lieber wenn ich jeden einzelnen Pin ansteuern könnte und ich eine 1 bzw. eine 0 geben könnte.
Kann mir da einer vielleicht die Quellcodezeile geben und die adresse für jedes Pin oder mir eine Seite empfehlen wo das beschrieben steht??
MFG
-
mach' ne lookup table.
an stelle 0 befindet sich dann die 63, an stelle 4 die 102 usw.
die werte für die anderen zahlen haste ja sicher auch irgendwovoid digit_to_lcd (unsigned int d) { static char table[10] = {63,..,...,..,102,..}; if (d < 10) outport (0x378,table[d]); }
oder so ähnlich
-
ja aber mit diesem code gibst doch doch direkt ne bsp. 4 aus.
und dann wird direkt die segment anzeige angesteuert.
Ich such nach dem dem code damit ich einzelne pins ansteuren kann:
z.B.
Pin1=1
Pin2=0
Pin3=1
Pin4=1
usw.also die einzelnen Segmente selber einzeln ansteuern kann.
a=1 b=1 c=1 e=1 f=1 g=0 für ausgabe null auf 7segment anzeigeich brauch also den code falls er anders ist und die adressierung dieser einzelnen pins des Druckerports!
Das ist ja mein Problem bloß ich finde das nirgends.
Ich muss das mit der einzelnen Ansteuerung machen wegen der weiteren Weiterverarbeitung der Daten (bsp Statistik)
MFG
-
zheka85 schrieb:
ja aber mit diesem code gibst doch doch direkt ne bsp. 4 aus.
und dann wird direkt die segment anzeige angesteuert.
Ich such nach dem dem code damit ich einzelne pins ansteuren kann:
z.B.
Pin1=1
Pin2=0
Pin3=1
Pin4=1
usw.
also die einzelnen Segmente selber einzeln ansteuern kann.
a=1 b=1 c=1 e=1 f=1 g=0 für ausgabe null auf 7segment anzeigealso für eine null brauchste ja 6 leuchtende leds:
2 links, 2 rechts, oben und unten.
das wäre dann: a=1 b=1 c=1 e=1 f=1 g=1 (binaer)
und das ist die 63 (dezimal), wie in deinem vorherigen beispiel.
kann aber auch sein, dass ich dich komplett falsch verstanden habe....
-
ne du hast mich richtig verstanden hab mich bloß vertippt und d=1 vergessen
.
ja das das 63 ist weiß ich ja.
Ihr habt aber glaub ich mein Problem nicht verstanden.
wenn du mit outport 63 sendest macht er das ja richtig und teilt das selbst auf die verschiedenen Pins beim Druckerport auf!!!
Ich will aber selbst die einzelnen!!! Pins(Datenleitungen) ansteuern!
So zum bsp. :
"wörtlicher Quellcode" :
outport Pin1 des Druckerports =1
outport Pin2 des Druckerports =1
outport Pin3 des Druckerports =0Mit Pins meine ich die einzelnen Datenleitungen!
Wie kann ich die einzeln Addressieren??Also ich will die binär Addressieren....
-
zheka85 schrieb:
Wie kann ich die einzeln Addressieren??Also ich will die binär Addressieren....
wenn du einen 8-bit wert zu dem 7segment display schickst, dann lassen darin gesetzte bits einzelne leds aufleuchten.
die binaerzahl 11111111 ist dezimal 255, d.h. es müssten alle leds leuchten (auch der dezimalpunkt)
die binaerzahl 00000100 ist dezimal 4, d.h es leuchtet nur eine led.
die binearzahl 10001000 ist dezimal 136 (oder 128+8), es leuchten 2 leds.
die position der einer-bits bestimmt, welche led leuchten soll.
bei bits die 0 sind bleibt die led aus.
guckst du: http://binaersystem.homeunix.org/
-
wenn man da aber noch nen bcd / 7-segment decoder ranhängt würde das schon gehen..