Seite 1 von 1
Dezimal nach BCD
Verfasst: Samstag 25. Juli 2009, 15:45
von compander
Hallo Freunde.
Hat zufällig schon jemand ein Makro "Dezimal nach binär" erstellt?
Ähnlich der IC-Hardware: SN 74147 ?
Besser wäre für mich:
Dezimal 1...16. Dann geht die Binärzahl für 4 bit genau auf.
Oder anders ausgedrückt:
16 logische Pegel (Leitungen) in das Makro rein, und
4 Leitungen im Binärcode raus.
Schönen Gruß vom C

mpander.
Re: Makro "Dezimal nach BCD" ?
Verfasst: Samstag 25. Juli 2009, 22:47
von Microprocessor
Hallo Compander,
da bei der Anfrage nur eine Ähnlichkeit zum 74147 verlangt wurde, es sich mit 16 Eingängen um kein Äquivalent
der 74er-Baureihe handelt und ich nicht weiß, ob mein Lösungsvorschlag überhaupt in Frage kommt, habe ich
das Beispiel nicht komplett ausgearbeitet und bitte, es nur als Gedankenanstoss zu betrachten.
Vielleicht findet sich noch jemand, der eine Gatter-basierte Lösung bastelt, aber man kann jetzt schon abschätzen,
dass der Schaltungsaufwand und die Simulationszeiten bei eventueller Mehrfachverwendung eines solchen Makros
nicht unerheblich sein werden. Deshalb mein Vorschlag mit nur einem Bauteil: einem ROM.
Folgende Randbedingungen wurden angenommen:
1. positive Logik
2. Ausgabe startet bei "0" wenn alle Schalter (Eingänge) aus (low) sind. Gegebenfalls alle Werte im
ROM verschieben, wenn bei ausgeschalteten Schaltern mit "1" gestartet werden soll
3. Es war nicht spezifiziert, ob ausschliesslich korrekte Werte (sprich: nur ein Eingang ist high) anliegen oder ob die
Wahrheitstabelle der des 74147 entsprechen soll. Zur Demonstration sind bis zur Ausgabe 7 die entsprechenden
Werte für die don't cares (x) eingetragen, Bei Bedarf sind die Speicherbereiche zwischen den Einträgen
entsprechend aufzufüllen.
Gruß
microprocessor
Re: Makro "Dezimal nach BCD" ?
Verfasst: Sonntag 26. Juli 2009, 00:34
von compander
Hallo Microprocessor.
Danke für deinen Vorschlag! Funktioniert gut!
Leider habe ich deinen Beitrag sehr spät gelesen.
Das mit dem "74147" sollte nur ein kleiner Hinweis sein, dass man sich das leichter vorstellen kann, was in etwa gebraucht wird.
Es wurde ja dann beschrieben, dass ich 16 Eingangsleitungen benötige.
Ich habe mich um Mitternacht hingesetzt. Und auch etwas entworfen. Die .prj ist angefügt.
Funktioniert auch gut.
Der Schwachpunkt liegt derzeit darin, dass immer nur eine "Eingangsleitung" "High" sein darf.
Was hier mit Tastern realisiert wurde, und somit gegeben ist.
Die Sim-Geschwindigkeit ist absolut im grünen Bereich. (bei SLOW)
Und die CPU-Last sehr moderat.
Die Tage will ich das Ding noch etwas aufpolieren (also die Eingänge "entkoppeln").
#########################################################
Oder sieht sich jemand herrausgefordert dies zu übernehmen ???
(Die Problematik wird schnell sichtbar, wenn die Tasten durch Schalter ersetzt werden)
#########################################################
Und dann ein Makro daraus machen.
Herzlichen Gruß vom C

mpander.
Re: Makro "Dezimal nach BCD" ?
Verfasst: Sonntag 26. Juli 2009, 07:16
von HCS
Hallo zusammen,
hier ein anderer Lösungsvorschlag.
Schönen Sonntag
Bernd
Re: Makro "Dezimal nach BCD" ?
Verfasst: Sonntag 26. Juli 2009, 10:01
von Microprocessor
Moin Compander,
um eine saubere Lösung für die Ansteuerung mit Schaltern als work-around zu Verfügung stellen zu können,
habe ich die restlichen ROM-Einträge mittels eines Zähler eingetragen. Bei mehreren Schalter auf high wird
immer der korrekte Wert ausgegeben.
Die ROM-Lösung in der Realität wäre natürlich eine Resourcenverschwendung, da der Speicher nur mit
Wiederholungswerten gefüllt ist und viel Energie frißt. Für die Simulation ist die Lösung allerdings
Ressourcen-schonend.
Bei neuen, allgemeinen Funktionen habe ich mir angewöhnt, diese einzeln bzw, mehrfach bezgl. der Auswirkung
auf dieSimulationsfrequenz zu testen, da diese i.d.R. eher in die Kniee geht als die CPU-Auslastung.
Hier die Messergebnisse für die bisherigen Lösungen:
Gatter - Lösung :
Schaltung 1* verwendet : 27,6 KHz
Schaltung 5* verwendet : 6,2 KHz
ROM - Lösung :
ROM 1* verwendet : 152 KHz
ROM 5* verwendet : 102 KHz
Gruss
microprocessor
Re: Makro "Dezimal nach BCD" ?
Verfasst: Sonntag 26. Juli 2009, 17:03
von compander
Hallo Microprocessor. Hallo Bernd.
Na. Da wart ihr ja ganz fleissig. Besten Dank dafür.
Nun haben wir ja schon 3 verschiedene Konzepte. Das ist erfreulich.
Allen haftet (derzeit) jedoch eine Unzulänglichkeit an.
Es ist sozusagen "verboten", mehr als eine Eingangsleitung High zu schalten.
Bei Bernds und meiner Schaltung "summiert" sich der Ausgangswert. Was natürlich nicht richtig ist.
Es soll so sein: ist eine Eingangsleitung gerade aktiv, so darf sich eine andere/weitere Leitung nicht durchsetzen.
Am ehesten funktioniert hier Microprocessors Schaltung richtig. Der Sachverhalt:
a) z.B. wird die Leitung "10" aktiviert. Das zusätzliche Aktivieren einer "niedrigere" Leitung hat keinen Einfluss auf das Ergebnis. Gefällt mir.
b) z.B. wird die Leitung "10" aktiviert. .....eine "höhere" Leitung hat nun Priorität. Die Leitung "10" hat keine Gültigkeit mehr. Gefällt mir nicht ganz.......
Soviel für heute. Herzlichen Gruß vom C

mpander.
Re: Makro "Dezimal nach BCD" ?
Verfasst: Sonntag 26. Juli 2009, 18:43
von funkybaer
Hallo
Hier mein "altes" Makro - zum testen .
Gruss Gerhard
Re: Makro "Dezimal nach BCD" ?
Verfasst: Sonntag 26. Juli 2009, 19:00
von Microprocessor
Hallo Compander,
compander hat geschrieben:a) z.B. wird die Leitung "10" aktiviert. Das zusätzliche Aktivieren einer "niedrigere" Leitung hat keinen Einfluss auf das Ergebnis. Gefällt mir.
Na das freut mich.
compander hat geschrieben:b) z.B. wird die Leitung "10" aktiviert. .....eine "höhere" Leitung hat nun Priorität. Die Leitung "10" hat keine Gültigkeit mehr. Gefällt mir nicht ganz.......
Jetzt bin ich etwas ratlos.
Wenn die Leitung "10" aktiviert ist und die "11" wird zusätzlich angeschaltet, hat "11" die Priorität und die "10" wird zu
der "niedrigeren" Leitung und hat keinen Einfluss auf das Ergebnis. Das sollte doch gefallen (siehe a.)).
Im übrigen entspricht dieses Verhalten dem 74147, sofern ich die Specs richtig verstanden habe.
Wenn die "11" eingeschaltet wird und die eingeschaltete "10" soll ihre Gültigkeit behalten: was soll dann am Ausgang ausgegeben werden ?
Vielleicht reden wir aneinander vorbei. Die Zusendung einer Wahrheitstabelle wäre dann hilfreich.
Gruß
microprocessor
Re: Makro "Dezimal nach BCD" ?
Verfasst: Sonntag 26. Juli 2009, 20:03
von compander
Hallo Microprocessor.
Ich kann deine Argumente gut verstehen. Ist Alles durchaus plausibel dargestellt.
Vermutlich reden wir tatsächlich aneinander vorbei. Was ich bedauere!
Ich versuche nun, das Ganze besser zu definieren. Etwas mehr zu präzisieren.
1) vergiss bitte endgültig den 74147. War wirklich nur ein Beispiel. Die zu entwickelnde Schaltung hat nix mit der Abbildung der Funktion dieses IC´s zu tun.
2) es soll so sein, dass eine aktivierte Eingangsleitung Gültigkeit hat.
Danach aktivierte (weitere) Eingangsleitungen haben keinen Einfluss auf das Ergebniss (also auf die Ausgänge).
Erst wenn die ursprüngliche (zuerst aktivierte) Eingangsleitung wieder "low" wird, darf eine weitere/neue Eingangsleitung sich durchsetzen (und damit das Ergebnis am Ausgang ändern).
Klingt leider etwas kompliziert. Leichter kann man es verstehen, wenn ich hier ein elektromechanisches Beispiel nutze:
an einem Drehschalter (mit 16 Stellungen) sind 16 verschiedene Spannungen angelegt. Am Abgriff kann immer nur eine Spannung existieren. (alle anderen Schalterstellungen werden also ignoriert)
Für die (erhoffte) Schaltung soll also gelten:
ist eine Eingangsleitung aktiv ---> sind alle anderen Leitungen gesperrt (haben keinen Einfluss).
Wird die (erwähnte) Leitung deaktiviert ---> so kann nun eine andere Leitung aktiviert werden (usw., usw.) (es ist im Moment nicht relevant ---> welche)
3. die Wahrheitstabelle will ich mir ersparen, da ich mir sicher bin, dass du die Umsetzung "Dezimal nach binär" vollständig kennst. Für Interessierte auch in meiner Beispiel.prj leicht (an den Led´s) nachzuvollziehen.
Ich hoffe, wir sind nun deutlich näher "beinander". Und ich bedauere, dass ich mich hier bisher wohl mehrmals missverständlich ausgedrückt habe.
Herzlichen Gruß vom C

mpander.
(Beitrag wurde nochmals editiert)
Re: Makro "Dezimal nach BCD" ?
Verfasst: Montag 27. Juli 2009, 06:16
von HCS
Hallo Compander,
so gings nach deiner Beschreibung.
Gruß Bernd
Re: Makro "Dezimal nach BCD" ?
Verfasst: Montag 27. Juli 2009, 08:18
von Microprocessor
Hallo Bernd.
eine echt knackige Lösung, funktioniert wie von Compander gefordert, wenige Bauteile, schnell simuliert:
Kompliment!!
Info:
Im Bauteil KT4 muss noch in der Tabelle der Ausgang von 1 auf 4 korregiert werden!
Gruß
microprocessor
Re: Makro "Dezimal nach BCD" ?
Verfasst: Montag 27. Juli 2009, 12:07
von funkybaer
Hallo Zusammen
wers ein wenig schneller will kann ja die Schaltung mal probieren
Gruss Gerhard
Re: Makro "Dezimal nach BCD" ?
Verfasst: Montag 27. Juli 2009, 18:24
von compander
Hallo Bernd.
Ich muss schon sagen: alle Achtung !
Einfach, praktisch und gut. .............richtig "rund".
Was mir besonders gefällt, und auch gebraucht wird: (auch wenn es nicht explizit gefordert wurde)
während eine Leitung aktiv ist, kann man eine weitere "vorbelegen".
Damit ist die Themafrage für mich abgeschlossen. ...........................da Problem vollständig gelöst!
Besten Dank (auch an alle Beteiligten), und Gruß vom C

mpander.