7 Segmentanzeige über Druckerport in C
-
hallo,
habe ein problem. wir sollen in der schule ein programm in C schreiben womit man eine 7 segment anzeige über den druckerport ansteuern kann.
ich habe keine ahnung wie man in C überhaupt mit dem druckerport kommuniziert. eine kleine anleitung, ein ganzer quelltext oder ein beispiel wär sehr hilfreich.
über eure hilfe würd ich mich sehr freuen.
-
Ist momentan die Woche der Drucker?
Nein: Drucker gibt es in Standard C++ nicht.
Welches OS verwendest du denn?
-
Shade Of Mine schrieb:
Ist momentan die Woche der Drucker?
Nein: Drucker gibt es in Standard C++ nicht.
Welches OS verwendest du denn?Die Programmieroberfläche ist Borland C++ Builder 3.11 oder sogar 5.x
Betrieben wird das ganze unter Win98.
-
hi,
klingt interessant. also mein vorschlag waere du befasst dich mal mit schieberegistern. nur als stichwort. weiterhin daten ueber parallelport ausgeben: ich hoffe du weisst was ein binaeres zahlensystem ist. um auf die datenleitungen der schnittstelle ein HI (1,on) zu legen musst du nir dem port eine zahl groesser -1 und kleiner 256 schicken. das machst du folgendermassen:
befehl:_outp($378,zahl) // $378 ist die adresse deines parallelports.
ich erwaehnte ein schieberegister aus folgendem grund:
ueber eine datenleitung ein HI oder LOW senden, dann dem schieberegister sagen das es schieben soll mit einer anderen datenleitung usw.gruss
msp
-
@msp
Leider werden alle Varianten von outp() (und inp()) meistens auf neueren Compilern nicht mehr unterstützt (z. b. auch der Borland Builder; beim Borland Compiler <= V5.02 wärs was anderes ;)).PS:
@Shade
Er will nicht drucken, sondern eine Anzeige ansteuern über LPT. Und was hat das mit C++ zu tun?? Ich dachte wir sind im ANSI-C Forum
-
Warum gleich ein Schieberegister? Die Rede war doch von
eine 7 segment anzeige
, also 1 (eins). Da reichen 8 Datenleitungen (7 Segmente und eine Dezimalpunkt) völlig aus. Viel wichtiger ist der Hinweis, dass der FanOut des Druckerports etwa 1 ist (also eine TTL-Last - ungefähr 2 mA bei 3,5V) Danach richtet sich die Berechnung des Vorwiderstandes pro Segment (Rv = (3,5V - 1,6V) / 2 mA) und der Typ der Anzeige (möglichts rot (1,6V), LowCurrent (2 mA) und gemeinsame Kathode (wird an Ground geschaltet)). Damit kommt man ohne zusätzliche Spannungsquelle aus und überlastet den Port nicht.
Alle Angaben ohne Gewähr und alle Versuche gehen auf eigenes Risiko.
Blackbird
-
AJ schrieb:
Er will nicht drucken, sondern eine Anzeige ansteuern über LPT. Und was hat das mit C++ zu tun?? Ich dachte wir sind im ANSI-C Forum
OK, vergiss das ++, ich habe mich halt vertippt.
Ist doch egal ob der Drucken will oder den Druckerport ansteuern - es geht nicht.
Und man verzeihe mir, wenn ich etwas ungenau lese, wenn ich täglich eine Druckerfrage verschiebe...
@zufaulzumeinloggen:
Soll das ganze die WindowsAPI verwenden oder die DOS/Win32 EIngabeaufforderung?
Deine Compiler wirken ein bisschen alt, deshalb tippe ich auf zweiteres.
-
@shade
Es sei dir verziehenMich hats auch schon gewundert, dass zur Zeit soviel Druckerfragen kommen...
-
hi,
also wie ich weiss is outp(x,y) und inp(x) bestandteil von ansi-c. dann is der compiler nicht fuer ansi-c geschrieben.
die sache mit dem schieberegister war nur ein tip von mir, wenn man nur eine 7-segment-anzeige hat reicht natuerlich die schnittstelle alleine (8 bit). habe nur etwas weiter gedacht und mich an ein projekt erinnert in dem es um geschwindigkeitsmessung ging und da ist man mit 1 stelle etwas unterbesetzt.gruss
msp
-
outp und inp ist kein Bestandteil von Ansi-C, aber da man solche Funktionen sicher
öfters benötigte haben es sehr viele Compiler angeboten.
-
ok, hast recht.
wie waers dann mit etwas assambler:mov dx, 378h ;in dx steht die addresse des ports
mov al, 55h ;schreibe den wert 55h in al
out dx,al ;schreibe 55h in die portaddresse
-
hi, erstmal danke für die ganzen antworten,
aber ich bin so der beste in C und verstehe manche nicht so ganz.@msp
wie geht das ganzgenau mit dem outp(x,y) und inp(x)?
die platine mit der 7 segment anzeige soll auch mit spannung über den druckerport betrieben werden.@zufaulzumeinloggen
die 7segment anzeige ist fertig, ich brauch nur hilfe zu programm.