7 Segmentanzeige über Druckerport in C



  • 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 verziehen 😉

    Mich 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.


Anmelden zum Antworten