Dezimal nach BCD

Dieser Bereich ist für den Austausch FERTIGER Makros und allgemein nützlicher Schaltungen vorgesehen.
Antworten
compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Dezimal nach BCD

Beitrag von compander » Samstag 25. Juli 2009, 15:45

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 :shock: mpander.

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: Makro "Dezimal nach BCD" ?

Beitrag von Microprocessor » Samstag 25. Juli 2009, 22:47

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
Dateianhänge
Decoder.prj
(69.6 KiB) 660-mal heruntergeladen

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Makro "Dezimal nach BCD" ?

Beitrag von compander » Sonntag 26. Juli 2009, 00:34

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 :shock: mpander.
Dateianhänge
Dez to bin.prj
(18.06 KiB) 536-mal heruntergeladen

HCS
Beiträge: 191
Registriert: Montag 3. November 2008, 16:11
Kontaktdaten:

Re: Makro "Dezimal nach BCD" ?

Beitrag von HCS » Sonntag 26. Juli 2009, 07:16

Hallo zusammen,
hier ein anderer Lösungsvorschlag.
Schönen Sonntag
Bernd
Dateianhänge
Dez to bin2.prj
(24.6 KiB) 627-mal heruntergeladen

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: Makro "Dezimal nach BCD" ?

Beitrag von Microprocessor » Sonntag 26. Juli 2009, 10:01

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
Dateianhänge
Decoder1.prj
(37.95 KiB) 526-mal heruntergeladen

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Makro "Dezimal nach BCD" ?

Beitrag von compander » Sonntag 26. Juli 2009, 17:03

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 :shock: mpander.

funkybaer
Beiträge: 506
Registriert: Mittwoch 22. Oktober 2008, 08:51
Wohnort: Kitzingen

Re: Makro "Dezimal nach BCD" ?

Beitrag von funkybaer » Sonntag 26. Juli 2009, 18:43

Hallo

Hier mein "altes" Makro - zum testen .

Gruss Gerhard
Dateianhänge
DEZ_HEX1_Default.zip
(2.55 KiB) 588-mal heruntergeladen

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: Makro "Dezimal nach BCD" ?

Beitrag von Microprocessor » Sonntag 26. Juli 2009, 19:00

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

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Makro "Dezimal nach BCD" ?

Beitrag von compander » Sonntag 26. Juli 2009, 20:03

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 :shock: mpander.
(Beitrag wurde nochmals editiert)

HCS
Beiträge: 191
Registriert: Montag 3. November 2008, 16:11
Kontaktdaten:

Re: Makro "Dezimal nach BCD" ?

Beitrag von HCS » Montag 27. Juli 2009, 06:16

Hallo Compander,
so gings nach deiner Beschreibung.

Gruß Bernd
Dateianhänge
Dez to bin3.prj
(26.42 KiB) 619-mal heruntergeladen

Microprocessor
Beiträge: 75
Registriert: Montag 27. Oktober 2008, 00:03

Re: Makro "Dezimal nach BCD" ?

Beitrag von Microprocessor » Montag 27. Juli 2009, 08:18

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

funkybaer
Beiträge: 506
Registriert: Mittwoch 22. Oktober 2008, 08:51
Wohnort: Kitzingen

Re: Makro "Dezimal nach BCD" ?

Beitrag von funkybaer » Montag 27. Juli 2009, 12:07

Hallo Zusammen

wers ein wenig schneller will kann ja die Schaltung mal probieren

Gruss Gerhard
Dateianhänge
BIN_HEX.prj
(9.29 KiB) 600-mal heruntergeladen

compander
Beiträge: 657
Registriert: Dienstag 14. Oktober 2008, 17:06
Wohnort: Markt Schwaben

Re: Makro "Dezimal nach BCD" ?

Beitrag von compander » Montag 27. Juli 2009, 18:24

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 :shock: mpander.

Antworten

Zurück zu „Makros & Schaltungen“