Unter Dos com port Steuern



  • Hallo leute,

    Ich möchte eine datei haben die ich unter Dos ausführen kann und mit der ich das Com Port steuern kann also ich möchte 2Motoren (kleine 5v motoren) ansteuern.

    am besten wäre es ja für mich wenn er nur die datei inpout32.dll brauch und eine .bat/.exe denn ich will auf dem system kein betriebssystem haben sondern nur eine diskette mit Dos und die treiber für tastatur und maus
    ich weiss allerdings nicht ob das so möglich ist aber es wäre am besten so

    ich hätte das gern als "konsolenanwendung" damit ich später einfach nur eingeben muss datapin1 = 1 oder 0
    1 für high und 0 für low

    am besten wären erklärungen und codeschnipsel oder ganzer code (darüber würde ich mich nartürlich am meisten freuen )

    ich hoffe das ich das einigermassen verständlich erklärt habe

    mfg derdefeckter

    EDIT: Waäre das irgendwie in Batch möglich?



  • COM ist aber Seriel und kompliziert. http://en.wikibooks.org/wiki/Serial_Programming/DOS_Programming
    Darf es vielleicht ein wenig LPT sein?
    http://www.arunet.co.uk/tkboyd/ele1pp.htm



  • Du hast schon sehr qualifizierte Antworten von Scrion bekommen:
    http://board.gulli.com/thread/1580714-unter-dos-com-port-steuern/



  • Schau mal in der Bücherei ob die das alte Buch PCintern noch haben. Da sollte die Portprogrammierung unter DOS beschrieben sein.

    Der aktuelle Open Watcom 1.9 kann glaube ich auch noch 16bit - Dos - Code erstellen.

    Aber wie schon erwähnt sauber die Ausgänge per Optokoppler "trennen" sonst schiesst du dir die seriellen Ausgänge schneller ab als du "Oh" sagen kannst.

    Hast dich ja nur sehr oberflächlich ausgelassen was du vor hast - mach eine gründliche Vorplanung sonst darfst du alles mehrfach machen 😃

    Na dann fröhliches Basteln



  • Alternativ wäre eventuell so was, was für dich - allerdings an USB:
    http://www.reichelt.de/?ACTION=3;GROUPID=3644;ARTICLE=91023;SID=2543WEmqwQARkAADZ08uQ4984743ffa938f1ebe6741a82eab11ae

    Aber schlampiges Löten oder Bestücken nimmt dir jede Konstruktion übel. Also sauber arbeiten und ausreichenden kontrollieren.



  • rein theoretisch könnte man einfach einen Bios-Interrupt benutzen, aber es müsste der Versuchsaufbau schon etwas deutlicher werden, bevor man hier Einzelheiten besprechen kann.
    (und wieso muß es unbedingt eine Pcsteuerung sein, ginge zum Beispiel aus vielen ein IPod(App) nich auch?)



  • ich hasse apple produkte.....

    Vorhaben:
    Roboter basteln der einfach nur vor und links/rechts laufen kann (auf "räder" mit motoren")
    als Herz soll der roboter ein mainboard haben einfach nur mit grafik karte und ram und floppy mehr nicht.

    allso ich bin jetzt schon soweit:
    ich habe mich an qBasic ran gemacht und erste ergebnisse erzielt und damit setze ich im bitregister die bits sollte ja eigentlich alles klappen oder?

    mfg derdefeckter



  • QBasic kennt heute kaum noch jemand 😉
    Ist theoretisch machbar, wenn du gute Kenntnisse in QBasic hast. Ein wenig Batch schadet nicht und Interrupts, wenn du die brauchst, liessen sich mit "Tricks" auch bewältigen.

    Einen Roboter auf QBasic würde ich mir im Jahr 2010 nur aus Nostalgie noch antun -
    ja hätten wir 1990 da wurde so was öfter so angegangen.

    QBasic ist ein Interpreter -> vielleicht treibst du ja noch den Compiler QuickBasic auf, der schon Interrupts kann.



  • Ja genau als compiler mircosoft quick basic

    EDIT: also ich benutz den compiler schon....
    und ich mein man kann dadurch ja noch viel lernen oder?

    mfg



  • f.-th. schrieb:

    QBasic kennt heute kaum noch jemand 😉
    Ist theoretisch machbar, wenn du gute Kenntnisse in QBasic hast. Ein wenig Batch schadet nicht und Interrupts, wenn du die brauchst, liessen sich mit "Tricks" auch bewältigen.

    Einen Roboter auf QBasic würde ich mir im Jahr 2010 nur aus Nostalgie noch antun -
    ja hätten wir 1990 da wurde so was öfter so angegangen.

    QBasic ist ein Interpreter -> vielleicht treibst du ja noch den Compiler QuickBasic auf, der schon Interrupts kann.

    Das ist zu gut...C ist schon uralt, C++ ist uralt, und das Algorithmen lernen in Basic ist so zauberhaft wie eh und je...und Basic vs Java? ...
    Zu Basic gibt es eine tolle Supportseite mit vielen Infos und Werkzeugen:
    http://www.qbasic.de/
    (eine der besten Seiten überhaupt - finde ich)

    (und an welcher Stelle manifestiert sich in dieser Sprachbeziehung der Fortschritt? Rein hardwaretechnisch waren die alten Fernseher besser als die neuen, nur nicht so riesengroß. Die alten Synthesizer klangen besser als die neuen waren nur nicht so flexibel. Der Hardwarezugang ist unter DOS viel besser als unter Windows. Extrem schnelle Bootzeiten. Schreibprogramme vollständig oder sehr praktisch Tastatursteuerbar. Spiele: Neu: TopGrafik, aussen Hui, innen(Spielideen, Witz, Abwechslung, Spannung usw.)Pfui, oder auf Minibildschirm - naja, ok, gute Snes Spiele waren nicht nur einfallsreich, abwechlungsreich, witzig usw, sie sahen/sehen auch super auf dem Fernseher aus)

    Rechenfreaks, also Mathematiker und High Performancer welche die Mehrleistung brauchen, haben sowieso schon immer andere Sprachen (ihre eigenen mathematisch orientierten oder hardwarenahen eben) benutzt. Die meisten mit C++ programmierten Roboter können nicht viel (Ok, das vor auch hardwaretechnische Gründe - es ist eher so, dass die hardware nicht viel kann - aber - so what?)

    Letztendlich sollte man in der Sprache programmieren, mit welcher man sich am wohlsten fühlt/den saubersten Code/den dreckigsten hinbekommt usw. - was immer auch mit den eigenen Projekten zu tun hat. Wer nach Mode geht, wird der Mode immer hinterherlaufen. Es wird immer eine/n geben, der/die mit der Sprache X oder dem Tool Y das Problem Z viel schneller, viel sauberer, viel performanter hinbekommt...



  • Als alter Hardwarebastler bin ich über einige Antworten sehr erstaunt. Ich habe die serielle Schnittstelle in den 90ern Lowlevel unter DOS verwendet. Daten zwischen zwei PCs übertragen geht mit

    BIOS Interrupt 14h: Zeichen ausgeben, einlesen u. Status abfragen

    Den Logikpegel einzelner Pins direkt setzen geht nicht so einfach. Man kommt mit IN/OUT nur bis zum UART und der erledigt den Rest. Wenn man einen Controller mit seriellem Eingang und Leistungsteil kauft kann man auch Motoren anschliessen. Dann kann man wie vorgesehen auch die Datenleitungen verwenden ...

    Will man über den UART was ansprechen muss man den zuerst initialisieren und auch die dann folgende Kommunikation inkl. Timing ist eher nicht trivial.

    Einzelne Pins für was anderes als Maus oder Modemfunktionen zu verwenden ist
    nahezu hoffnungslos 😞

    Viel einfacher wäre es mit der parallelen Schnittstelle. Dort gibt es Ein/Ausgänge die als Pins (mit zusätzlichem Leistungsteil) direkt ansprechbar sind. Spricht was gegen den Parallelport ?

    PS: USB und DOS geht eigentlich fast garnicht ..



  • Für DOS gab es einige Ansätze USB zu nutzen:
    http://de.wikipedia.org/wiki/FreeDOS

    Ich weiss ja nicht welche Hardware unserer Beitragsersteller wählt, ist die nicht ganz so alt und er will mehr fensterln, ...

    Auf Geschwindigkeit kommt es in seinem Projekt ja wahrscheinlich nicht in erster Linie an, also sollte die Nutzung von Interrupts kein Problem sein.

    Wenn doch, oh je lang ist es her, hab mal unter DOS Treiber für Grafikkarten mit höherer Auflösung geschrieben. Die waren relativ schnell, hatten aber den Nachteil nur für eine Grafikkarte optimiert zu sein. Also, wenn ich mich recht erinnere waren die Nummern der Interrupts nur verschlüsselte Einsprungsadressen.

    Unter Windows NT und neuerem OS sind diese Hardwarenahen Eingriffen auf Sicherheitsgründen gekappselt worden.

    Unter DOS hat man als Laie also viel eher ein Erfolgserlebnis mit wenig Quelltext.

    Na dann viel Spass noch
    f.-th.


Anmelden zum Antworten