Guten Tag, gibt es eine möglichkeit den parallelport zu drosseln? Projekt: Eine Häuserlicht steuerung für die Modellbahn mit wenig Kabeln. jedes hauß bekommt ein ystie 2x2x0,6 mit den Leitungen: 1 + 2 - (kommt vom vorherigem Häuser zähler) 3 Led An 4 Hausinterner Zähler der p port soll mir einen 4017 zählen lassen. Der 4017 kann nur bis ca 5mhz, der port macht aber weit mehr als 100mhz. Lösungenidee: 1. Ich könnte einen 5mhz takt an einen Eingang legen und bei jede pos. Flanke verknüpfen. 2. Mit der SLEEP funktion? wenn ich SLEEP 1 eingebe dann funktioniert alles wie ich will, bloß vielviel zu langsam. Könnt ihr mir eine Idee oder sogar eine Lösung geben? Ich kann leider keinen Strobe Signal vom zähler oder andere IC`s verwenden weil es mit 4017 verbaut ist.
Nick K. schrieb: > Der 4017 kann nur bis ca 5mhz, In der alten CMOS-Version. > der port macht aber weit mehr als 100mhz. Ganz sicher nicht. Mit einfachem Bitbanging auf der PC-Seite ist es kaum möglich, damit mehr als 1 bis 2 MHz zu erzeugen, auch wenn der PC selbst mit zig GHz getaktet wird. Die Maßeinheit schreibt sich übrigens mit großem "M": MHz (Megahertz). Mit kleinem "m" geschrieben mHz wären es Millihertz - das ist ein Milliardstel von einem Megahertz.
Danke für die antworten. Könnt ihr mir bitte erklären warum es funktioniert wenn ich den befehl SLEEP 1 benutze? ohne den befehl geht nix. was mache ich falsch? welchen 4017 soll ich nutzen? ist ja noch tauschbar weil sicherlich die Pin belegung gleich bleibt. Ja sorry ich meine Mhz.
Nick K. schrieb: > welchen 4017 soll ich nutzen? Das ist wurscht, weil auch die alte CMOS-Version CD4017 schnell genug ist.
Weil dein Anschlußkabel und Schaltung schlechte elektrische Eigenschaften haben bzw. die Schaltung einfach schlecht ist. Sagt zumindest meine Glaskugel. Die ist so schlecht, daß du noch nicht mal einige 10-100kHz übertragen kannst. Und wenn du Sleep benutzt sind es nur noch unter 1kHz.
Portbelegung: Ausgang 1(bitadresse-1) = LED AN Ausgang 2(bitadresse-2) = Zähler im Haus Ausgang 3(bitadresse-4) = Zähler der die Häuser bestimmt. Ausgang 4(bitadresse-8) = Reset mein program im kurzen: Do Out(888),0 Out(888),3 Out(888),0 Out(888),3 Out(888),0 Out(888),2 Out(888),0 Out(888),2 Out(888),0 Out(888),2 Out(888),0 Out(888),2 Out(888),1 Out(888),8 Loop Jetzt sollte beim 2ten Haus die LED 4 leuchten.
dafür gibt es am parallelport die pins 1, 10 und 11. (1 am PC ausgang, 10 und 11 eingang) - wenn das sendende programm gut geschrieben wurde bekommt man dami eine beliebig langsame übertragung zustande
Abend. kann es sein das ich wirklich zu wenig geschirmt habe? auf meinem testboard hab ich nur ungeschrimte drähte. aber an meinem programm is nix falsch? zu den Häusern liegen 2 verschiedene Kabeltypen, einmal ein 4x2 cat7 Kabel oder ein 2x2x0,6 ystie(telefonkabel) bitte werft doch mal paar probleme in den raum:(
programmierst Du unter DOS mit 'debug' auf der Kommandozeile? Oder Qbasic ?? Viel Erfolg trotzdem Axelr.
achja eins noch: was, bitte, ist ein ystie ? > jedes hauß bekommt ein ystie 2x2x0,6 mit den Leitungen: http://www.bing.com/search?q=ystie&form=MOZSBR&pc=MOZI Kannst Du eine Schaltplanskizze anfertigen und uns deine Software näher bringen. Die Software wird ja nicht nur aus den paar Zeilen OUT(888) bestehen, oder?
Neben der Schaltplanskizze wäre auch ein Photo vom tatsächlichen Aufbau hilfreich. Nicht alles, was im Schaltplan toll aussieht, muss auch in der Realität so umgesetzt sein ...
http://retired.beyondlogic.org/ecp/ecp.htm Du kannst zwischen den "outs" etwas rechnen. Verlangsamt auch. :) Die Kabel müssen schon ordentlich geschirmt sein, wenns soo schnell gehen soll. Muss es aber nicht. http://de.wikipedia.org/w/index.php?title=Datei:IEEE1284-PrinterCableAB_pinout.jpg&filetimestamp=20070412153754 Wenn Du uns gesagt hast, womit Du proggrammierst, dann schauen wir mal, ob es nicht ausnahmsweise ein "SLEEP 10ms" oder sowas gibt. ;) Wenn Du 400hex (OUT(1912),3 etc.) auf deine Basisadresee oben drauf legst und den Parallelport in den ECP mOdus schaltest, kannst Du tolle Sachen anstellen,Link oben dabei...
Danke für die Antworten! Ich programmiere mit qbasic und ja mehr programm ist noch nicht weil ich es erstmal testen will, später wird da mal ne Tabelle drum gebastelt;) J-Y(ST)Y 2x2x0,6 meinte ich. Schaltplan lade ich dann mal hoch.
"Weil dein Anschlußkabel und Schaltung schlechte elektrische Eigenschaften haben bzw. die Schaltung einfach schlecht ist." Oder es wurde sich auf die Pullups im Parallelport verlassen, was auch nicht gerade hilft.
Nick K. schrieb: > Danke für die Antworten! > > Ich programmiere mit qbasic und ja mehr programm ist noch nicht weil ich > > Schaltplan lade ich dann mal hoch. du willst ersthaft eine neuentwicklung mit einer programmiersprache machen, die vor 15 jahren zum letzten mal aktiv ausgeliefert wurde, nur auf einem betriebssystem aus der gleichen zeit läuft und das man auf moderner hardware (fast) nicht mehr zum laufen bekommt? des menschen wille ist sein himmelreich im ernst - ich würde dir folgenden plan vorschlagen: 1. du beschäftigst dich mit den grundlagen von mikrocontrollern 2. du baust dir eine µC schaltung, die vom pc steuerbefehle per rs232 entgegen nimmt (hier tuts auch ein usb-rs232 adapter) und dann an den vier pins wackelt wie du es brauchst. eigentlich sollte dazu ein tiny2313 oder so ausreichen. 3. du baust diese schaltung in deine modellbahnanlage ein alternativen zu 2 und 3: a) du baust die an den pc angebaute platine gar nicht und dafür eine ganze hand voll slave-platinen, die dann per rs485 oder rs422 direkt vom pc angesteuert werden (usb-rs232 peitsche + rs232-rs422 adapter oder gleich in einem stück müsste es auch geben) b) du baust schritt 2 wie oben beschrieben auf, dazu eine handvoll slave-platinen mit einem geeigneten bus-system deiner wahl (rs422, rs485, i2c, spi, ...) Nick K. schrieb: > Ja Pullups habe ich nicht mit angebracht, werde es aber testen. tut mir leid, aber ich kann hier beim besten willen keinen schaltplan erkennen.
Braucht nicht unbedingt eine uC-Schaltung - irgendwas was GPIO über USB zur Verfügung stellt würde da auch schon helfen (zB die üblichen FTDI-Chips!)...
Aber wenn er nun schon mit OUT(888),3 soo schön direkt auf die Register zugriff hat? warum nicht. Läuft da eben ne alte 386er Maschine mit 8MB Ram und einer 40MB Platte. DANN kann er aber auch die Register verwenden um sie einzulesen. Was liegt hier näher, als das Timer Register selbst zu verwenden?? Der Timer sitzt an Adresse 0x40,(dezimal)64. Also los:
1 | dummy_read = INP(64) |
2 | los = INP(64) |
3 | DO |
4 | dummy_read = INP(64) |
5 | stop = INP(64) |
6 | d = los - stop |
7 | IF d < 0 THEN d = d + 256 |
8 | LOOP WHILE d < 90 |
die 90 bestimmt, oft die Schleife ausgeführt wird, also wie lange zwischen den "OUT(888),x" Befehlen gewartet wird. Bist Du programmtechnisch in der Lage, eine Subroutine mit Qbasic zu schreiben, wo Du das einbindest? Wäre praktisch. Sonst musst Du das zwischen jeden "OUT(888),x" Befehl kopieren. Soo - Port gedrosselt. Aufgabe erfüllt ;)) Axelr.(unangemeldet, sry)) Viel Erfolg noch :)
Uuups, zwei Uhr siebzehn unter der Woche...;) Hier noch was zum Timer: http://wiki.osdev.org/Programmable_Interval_Timer
macht irgentiwe kein Sinn, sich den Kopf zu zerbrechen um sich zu erinnern, wie das früher mit dem QBasic ging, wenn es eh keine Sau initeressiert. Die Option TIMER hatte ich zB. schlicht über die Jahre vergessen. Na - egal... Axelr.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.