Forum: PC-Programmierung LogicBuddy: ein einfacher Logik-Minimierer


von Heiner K. (heinerkuhlmann)


Angehängte Dateien:

Lesenswert?

Elektronik-Bastler stehen oft vor dem Problem, eine Logik, die ihnen 
vorschwebt, in Hardware zu realisieren. Oft fehlt es an mathematischen 
Kenntnissen und Verfahren. Tools gibt eine ganze Reihe, die das mehr 
oder weniger gut erleichtern können. Hier herrscht leider eine Vielfalt 
der Darstellung/Schreibweise.

Ich habe deshalb das Tool LogicBuddy geschrieben, dass es Anfängern und 
Bastlern erleichtern soll, logische Funktionen in eine realisierbare 
Form zu bringen.

Im wesentlichen werden Ausdrücke mit NAND und NOT erzeugt.

Eingeben kann man sowohl eine Wahrheitstabelle - mit Klicki-Micki, als 
auch Ausdrücke mit 'and', 'or' usw.

Es werden sowohl logische Ausdrücke wie

x = ( a and b ) or   ( not   a and not   b ) . # englisch
x = ( a und b ) oder ( nicht a und nicht b ) . # deutsch
y = NAND( NAND( NOT a, b ), x ).

als auch einfache Sätze wie

x ist wahr wenn a und b.
x ist wahr wenn a und nicht b.
y = NAND( NAND( NOT a, b ), x ).

akzeptiert.

LogicBuddy gibt es in drei Versionen

1. Quellcode,
2. lauffähige Version für Linux und
3. lauffähiges Paket für Windows.

unter

http://praktische-elektronik.dr-k.de/Tools/InstallationLogicBuddy.html

Die beiden lauffähigen Versionen benötigen keine umfangreiche 
Installation und können leicht wieder entfernt werden. Sie laufen auch 
von externen Medien wie USB-Sticks.

LogicBuddy ist in Perl geschrieben, verwendet und enthält das Tool 
espresso.

Ich habe das Programm unter verschiedenen Linux-Versionen und Windows 
getestet, brauche aber Eure Hilfe für weitere Tests.

Und natürlich brauche ich Anregungen und Kritik für das Tool selbst.

U.a. brauche ich Klärung zu folgenden Aussagen:

Eingang sind a und b.
x ist wahr wenn a und b.
Ausgang ist x.


Welchen Wert hat x in anderen Fällen: FALSCH oder UNDEFINIERT oder ?

Grüße
    Heiner

: Verschoben durch User
von Guido B. (guido-b)


Lesenswert?

Ähm, sorry,

was macht das Teil? Ich meine außer Fehlermeldungen?

von Besucher (Gast)


Lesenswert?

Hallo Heiner,

ich habe dein Tool zwar noch nicht getestet, aber zumindest von der 
Screenshots und von der Sache her macht es schon mal einen guten 
Eindruck. :)

Heiner K. schrieb:
> U.a. brauche ich Klärung zu folgenden Aussagen:
>
> Eingang sind a und b.
> x ist wahr wenn a und b.
> Ausgang ist x.
>
> Welchen Wert hat x in anderen Fällen: FALSCH oder UNDEFINIERT oder ?

Äähm, vielleicht verstehe ich diese trivial anmutende Frage nicht 
richtig, aber ich würde sagen
- aus dieser umgangssprachlichen Definition geht einfach nicht hervor 
welchen Wert x in dem Fall hat. Das ist möglicherweise (irgendwo in den 
Tiefen deines Programms) definiert, mir ist es jedoch unbekannt.
- als geneigter Leser und pragmatischer Techniker würde ich jedoch von 
binärer Logik ausgehen und "x ist wahr wenn a und b" als "x = a & b;" 
interpretieren. Demzufolge erwarte ich ein FALSCH als Antwort. Und 
nichts anderes.
- ansonsten stellt sich die Frage welche Logik dein Tool anwendet (da 
gäbe es ja noch mehrwertige Logik und nichtmonotone Logik und all das 
Zeug)
- ehrlich gesagt würde ich das Problem aber wohl dadurch lösen das ich 
die Möglichkeit "umgangssprachlichen Definitionen" einzugeben aus dem 
Programm entfernte. Ich glaube nicht das sie in der Praxis großartig 
verwendet werden wird.

von Heiner K. (heinerkuhlmann)


Lesenswert?

Hollo Guido

Guido B. schrieb:
> Ähm, sorry,
>
> was macht das Teil? Ich meine außer Fehlermeldungen?

Wie der Titel sagt: Logiken minimieren

Ein logischer Ausdruck wie

x=(a und nicht b) oder ( (nicht a und c) oder b ) und (b oder nicht c).

wird zu

x = NAND ( NOT(a), NOT(b) ).

vereinfacht.

Der erste Ausdruck braucht 3 AND-Gatter, 3 OR-Gatter und 3 Inverter.
Der zweite nur ein NAND und 2 Inverter :)

Es geht auch mit 1 OR-Gatter:

x = a OR b.

Beides liefert das Teil.

Der Text für die Ausdrücke kann frei eingegeben werden. Fehler nicht nur 
zu erkennen sondern auch Vorschläge für die Behebung zu machen, sollen 
den Anwender unterstützen.

Dazu ist zu klären, was Eingänge und was Ausgänge sind.

Man kann übrigens auch Wahrheitstabellen einsetzen und zwischen der Text 
und Wahrheitstabelle per Klick hin und her transferieren und natürlich 
beide ändern.

von Heiner K. (heinerkuhlmann)


Lesenswert?

Besucher schrieb:

> Heiner K. schrieb:
>> U.a. brauche ich Klärung zu folgenden Aussagen:
>>
>> Eingang sind a und b.
>> x ist wahr wenn a und b.
>> Ausgang ist x.
>>
>> Welchen Wert hat x in anderen Fällen: FALSCH oder UNDEFINIERT oder ?
>
> Äähm, vielleicht verstehe ich diese trivial anmutende Frage nicht
> richtig, aber ich würde sagen
> - aus dieser umgangssprachlichen Definition geht einfach nicht hervor
> welchen Wert x in dem Fall hat. Das ist möglicherweise (irgendwo in den
> Tiefen deines Programms) definiert, mir ist es jedoch unbekannt.

Das war der Sinne meiner Frage.

Eigentlich geht es nur um das WENN.

ist, und, oder nicht sind nur syntaktischer Zucker für = AND OR

> - als geneigter Leser und pragmatischer Techniker würde ich jedoch von
> binärer Logik ausgehen und "x ist wahr wenn a und b" als "x = a & b;"
> interpretieren. Demzufolge erwarte ich ein FALSCH als Antwort. Und
> nichts anderes.

Natürlich binäre Logik.

x ist wahr wenn a AND b.

1. Der letzte Ausdruck überschreibt vorherige.

2. WENN setzt die Ausgangs-Variable x nur dann, falls der Ausdruck 
hinter dem WENN (a AND b) WAHR ist.

Aber welchen Wert hat x, für den Fall, dass (a AND b) FALSCH ist. Dann 
wird x nicht gesetzt. Das Programm geht davon aus, dass x initial FALSCH 
ist.

> - ansonsten stellt sich die Frage welche Logik dein Tool anwendet (da
> gäbe es ja noch mehrwertige Logik und nichtmonotone Logik und all das
> Zeug)

Natürlich nur binäre.

> - ehrlich gesagt würde ich das Problem aber wohl dadurch lösen das ich
> die Möglichkeit "umgangssprachlichen Definitionen" einzugeben aus dem
> Programm entfernte. Ich glaube nicht das sie in der Praxis großartig
> verwendet werden wird.

Ja.

Das WENN soll Anfänger unterstützen, die sich mit der Formulierung 
normaler Ausdrücke schwer tun.

von Mike B. (mike_b97) Benutzerseite


Lesenswert?

alter Verwalter, die entpackte Windows-Version hat knappe 500MB
ist da gleich der 20-Band-Brockhaus mit drin???

kann man das nicht etwas schlanker gestalten?

: Bearbeitet durch User
von Besucher (Gast)


Lesenswert?

Heiner K. schrieb:
> x ist wahr wenn a AND b.
>
> 1. Der letzte Ausdruck überschreibt vorherige.
>
> 2. WENN setzt die Ausgangs-Variable x nur dann, falls der Ausdruck
> hinter dem WENN (a AND b) WAHR ist.
>
> Aber welchen Wert hat x, für den Fall, dass (a AND b) FALSCH ist. Dann
> wird x nicht gesetzt. Das Programm geht davon aus, dass x initial FALSCH
> ist.

Also ist damit sowas wie
1
if( a & b ) {
2
   x = true;
3
}
gemeint? Dann wäre es freilich auch klar - x behält seinen bisherigen 
Wert. Nur bei der Abbildung der Umgangssprache auf dieses Konstrukt 
hat's (bei mir) gehakt. Da hätte ich wohl das Handbuch lesen sollen.. 
8-)

von Undankbare Meckertante (Gast)


Lesenswert?

Mike B. schrieb:
> alter Verwalter, die entpackte Windows-Version hat knappe 500MB
> ist da gleich der 20-Band-Brockhaus mit drin???
>
> kann man das nicht etwas schlanker gestalten?

Leute wie du sind der Grund, warum ich meine Projekte hier nicht 
vorstelle. Freu dich doch lieber, dass du einen kompletten C++Compiler 
kostenlos mit dazu bekommen hast. Das sind Sachen, die man immer 
gebrauchen kann. Aber nein, es muss ja immer an allem rumgemeckert 
werden.

von Guido B. (guido-b)


Lesenswert?

Heiner K. schrieb:
> Guido B. schrieb:
>> Ähm, sorry,
>>
>> was macht das Teil? Ich meine außer Fehlermeldungen?
>
> Wie der Titel sagt: Logiken minimieren

Ah, danke! Wer lesen kann ist klar im Vorteil. :-/

von Mike B. (mike_b97) Benutzerseite


Lesenswert?

Undankbare Meckertante schrieb:
> Mike B. schrieb:
>> alter Verwalter, die entpackte Windows-Version hat knappe 500MB
>> ist da gleich der 20-Band-Brockhaus mit drin???
>>
>> kann man das nicht etwas schlanker gestalten?
>
> Leute wie du sind der Grund, warum ich meine Projekte hier nicht
> vorstelle. Freu dich doch lieber, dass du einen kompletten C++Compiler
> kostenlos mit dazu bekommen hast. Das sind Sachen, die man immer
> gebrauchen kann. Aber nein, es muss ja immer an allem rumgemeckert
> werden.

sollte kein meckern sein, sorry
wollte nur freundlich fragen

was braucht man um den Quellcode zu bearbeiten?
welche perl-umgebung, version, was auch immer

von Heiner K. (heinerkuhlmann)


Lesenswert?

Besucher schrieb:
> Heiner K. schrieb:
>> x ist wahr wenn a AND b.
>>

> Also ist damit sowas wie
> [c]
> if( a & b ) {
>    x = true;
> }

Ja genau.

Aber dieses muss für den Anwender klar sein. Werde ich in die Hilfe 
einbauen. Aus dieser soll dann eine HTML-Doku generierte werden.

Ein wenig zur Realisierung:

Eigentlich wird der Text der logischen Funktion mit einem einfachen 
rekursiv entscheidenden Parser analysiert. Der Codegenerator ersetzt 
einfach AND oder UND durch Perls && sowie OR oder  ODER durch || usw.
Bei WENN oder IF ist es ebenfalls einfach Perl kennt ein abschliessendes 
if.

Der Perl-Code ist einfach

my $x = 1 if $a && $b;

der wird dann evaluiert und mit den möglichen Kombinationen von $a und 
$b die Wahrheitstabelle gefüllt.

Die logische Funktion wird im Perl-Modul LogicBuddy/Logic.pm 
ausgewertet.

Um den Parser zu verstehen ist die Syntax der logischen Funktionen 
nötig.
Sie steht in $C_syntax_full.

Die nicht terminalen Symbole sind als Methoden beginnend mit LOGIC zu 
finden.

von Clemens L. (c_l)


Lesenswert?

Heiner K. schrieb:
> Elektronik-Bastler stehen oft vor dem Problem, eine Logik, die ihnen
> vorschwebt, in Hardware zu realisieren. [...]
> Im wesentlichen werden Ausdrücke mit NAND und NOT erzeugt.

Das Espresso kommt anscheined aus der Chip-Design-Ecke, wo die 
Beschränkung auf NAND und NOT sinnvoll ist. Aber als Bastler habe ich 
auch andere Gatter herumliegen, und interessiere mich nicht dafür, wie 
viele Transistoren intern verwendet werden.

(Und ich habe hier gerade eine Schaltung mit einen 
Open-Collector-Ausgang. Das nenne ich aber nicht mehr "logische 
Funktion". ;-)

> Eingang sind a und b.
> x ist wahr wenn a und b.
> Ausgang ist x.
>
> Welchen Wert hat x in anderen Fällen: FALSCH oder UNDEFINIERT oder ?

Mathematisch gesehen, ist x undefiniert; man müsste "x ist nur dann 
wahr ..." schreiben.
Umgangssprachlich kann man dieses "nur dann" weglassen.

Wenn die logische Funktion nur 1-Fälle definiert (oder nur 0-Fälle), 
wäre es nützlich, für die restlichen Kombinationen der Eingänge den 
umgekehrten Fall annehmen zu können.

von Besucher (Gast)


Lesenswert?

Heiner K. schrieb:
> Eingang sind a und b.
> x ist wahr wenn a und b.
> Ausgang ist x.
>
> Welchen Wert hat x in anderen Fällen: FALSCH oder UNDEFINIERT oder ?

Hmm, irgendwie ist diese Umschreibung der Funktionalität nicht ganz 
rund. Das klingt für mich als handele es sich um die Beschreibung eines 
Gatters mit zwei Eingängen und einem Ausgang. Ein solches Gatter könnte 
zwar WAHR oder FALSCH ausgeben; solange es jedoch keinen Eingang für ein 
x hat kann es auch kein unverändertes x wieder ausgeben (vielleicht 
mittels Tristate, aber das war ja hier glaube ich nicht gemeint). Am 
einfachsten wäre es wohl die Beschreibung entsprechend zu erweitern:

Eingang sind a, b und x.
x ist wahr wenn a und b
x bleibt unverändert wenn nicht a und b
Ausgang ist x.

von Heiner K. (heinerkuhlmann)


Lesenswert?

Mike B. schrieb:

> was braucht man um den Quellcode zu bearbeiten?
> welche perl-umgebung, version, was auch immer

Unter Linux ist Perl dabei.

Unter Windows kann ich nur Strawberry-Perl empfehlen.

Die Quellversion auspacken  und in das Verzeichnis 
LogicBuddy_yyyy_mmm_dd gehen dort

perl LogicBuddy/LogicBuddy.pl

Dann wird von Perl angemault, was fehlt.

Ein Paket (z.B. Readonly) wird in der Kommadozeile mit

cpan -i Readonly

installiert. Bei manchen Paketen kann das dauern ...

Ich habe z.Z. nicht parat, welche Pakete fehlen. Spontan fallen mit Tk, 
Readonly, Safe, Data::DumperFile ein.

Perl Programmierer kennen kennen sich damit aus.

Um diese Prozedur allen anderen zu ersparen, habe ich die fertigen 
Pakete angeboten.

Für Windows werde ich Update-Pakte anbieten, die dann viel kleiner sind 
:)

von Heiner K. (heinerkuhlmann)


Lesenswert?

Hallo,

ich danke allen, die sich zu der Formulierung der logischen Funktionen 
geäussert haben. Ich werde darüber nachdenken und das Ganze später hier 
vorstellen.

Grüsse

   Heiner

von Heiner K. (heinerkuhlmann)


Lesenswert?

Hallo zusammen,

ich habe versucht, die Struktur der Formulierung logischer Funktionen 
etwas klarer zu fassen. Eigentlich geht es nur um die Formulierung mit 
WENN. Es gibt das Problem des Werts falls WENN nicht zutrifft:

Entweder ist der Wert der Variablen bereits definiert oder er wird 
initial auf FALSCH gesetzt.

Das WENN kann auch dazu verwendet werden, anzugeben in welchen Fällen 
der Wert der Variablen nicht definiert bzw. beliebig ist. Das entspricht 
dem 'd' in Wahrheitstabellen. Damit es zu keinen Missverständnissen 
kommt, darf ein solcher Ausdruck nur am Ende der Liste der Ausdrücke 
stehen.

Ein Beispiel:

Eingang = a, c, d.
x = a und b.       # Kommentar bis zum Ende der Zeile
y = c oder d.
v = wahr wenn d und nicht a.
z = y und ( nicht a oder nicht c ).
x = beliebig wenn nicht c.
Ausgang = x, z.

Ein paar Regeln

Eine spätere Aussage geht über eine vorherige.

Bei WENN erhält die Variable nur dann den Wert, wenn die Aussage hinter 
WENN zutrifft.

Jede Variable hat den anfänglichen Wert FALSCH.

Aussagen mit BELIEBIG dürfen nur unmittelbar vor AUSGANG stehen.

Eine Kurzfassung seht unter
http://praktische-elektronik.dr-k.de/Tools/LogicBuddy-Kurzfassung-logische-Funktionen.html

Ich hoffe, dass damit logische Funktionen besser beschrieben sind.

Die Beschreibung von LogicBuddy, eine Zusammenfassung der integrierten 
Hilfen steht unter
http://praktische-elektronik.dr-k.de/Tools/LogicBuddy-Dokumentation.html

Grüße

   Heiner

von WebDepp (Gast)


Lesenswert?

Sowas haben wir im Studium in Prolog als Übung geschrieben, oder ein 
CAS-System für Ableitungsregeln,.... Geht in Prolog sehr einfach. Das 
ganze per swi-lib an ein C-Programm geklatscht hat das nur ein paar kb, 
ok ohne GUI aber das Tk-Zeug kann man auch noch ranflicken wenn man das 
haben will oder macht es als Webanwendung....

Dein Monstrum ist eher zum abgewöhnen und dann kanns auch nur NAND/NOR, 
unbrauchbarer Schrott. Aber trotzdem ein Fleisssternchen weil du das 
gemacht hast.

von Mike B. (mike_b97) Benutzerseite


Lesenswert?

WebDepp schrieb:
> Sowas haben wir im Studium in Prolog als Übung geschrieben, oder
> ein
> CAS-System für Ableitungsregeln,.... Geht in Prolog sehr einfach. Das
> ganze per swi-lib an ein C-Programm geklatscht hat das nur ein paar kb,
> ok ohne GUI aber das Tk-Zeug kann man auch noch ranflicken wenn man das
> haben will oder macht es als Webanwendung....
>
> Dein Monstrum ist eher zum abgewöhnen und dann kanns auch nur NAND/NOR,
> unbrauchbarer Schrott. Aber trotzdem ein Fleisssternchen weil du das
> gemacht hast.

Hast du vom dem Prolog-Teil noch Quellcode vorliegen?
Würde mich zu Studienzwecken brennend interessieren. Prolog find ich 
schon spannend.

von Heiner K. (heinerkuhlmann)


Lesenswert?

WebDepp schrieb:
> Sowas haben wir im Studium in Prolog als Übung geschrieben, oder ein
> CAS-System für Ableitungsregeln,.... Geht in Prolog sehr einfach. Das
> ganze per swi-lib an ein C-Programm geklatscht hat das nur ein paar kb,

In Prolog sind Ableitungsregeln tatsächlich ein paar Zeilen, aber unser 
WebDepp scheint über ein paar Zeilen aus ein einem Lehrbuch zu kopieren 
nicht hinaus gekommen zu sein. Sonst wüsste er, dass die Behandlung von 
Fehlern auch in Prolog nicht mal eben geht.

> ok ohne GUI aber das Tk-Zeug kann man auch noch ranflicken wenn man das
> haben will oder macht es als Webanwendung....

Und WebDepp wüsste auch, dass mal eben ranflicken einer GUI dann doch 
aufwendiger ist, als er zunächst vermutete.

> Dein Monstrum ist eher zum abgewöhnen und dann kanns auch nur NAND/NOR,
> unbrauchbarer Schrott. Aber trotzdem ein Fleisssternchen weil du das
> gemacht hast.

Es geht hier nicht um simples NAND/NOR für Leute, die sowieso alles 
besser können aber nicht machen, sondern es geht um eine Umgebung, für 
Anfänger und Laien, die logische Funktionen, Wahrheitstabellen und deren 
Vereinfachung zusammenfasst.

An dieser Stelle habe ich, darum gebeten, ob die Formulierungen für 
Laien verständlich sind und mir erhofft, dass jemand mit genügend 
Fachverstand sich das einmal ansieht.

Übrigens kenne ich dieses "mal eben" zur Genüge und ich bin/war dankbar 
dafür, weil diese Genies mir Jobs verschaffen, Schrott brauchbar 
zumachen.


@Mike

Die Ableitungsregeln in Prolog stehen in jedem Lehrbuch von Prolog. Sie 
funktionieren auch korrekt. Leider ist das Ergebnis nicht lesbar. Ein 
Mathe-Lehrer würde das nicht einmal annehmen.

Ich habe in Prolog Programme geschrieben, die abgeleitete Ausdrücke 
etwas vereinfachen. Und dieses ist ein erheblicher Aufwand von vielen 
Zeilen Prolog.

So viel zu mal eben ...

von Oliver S. (oliverso)


Lesenswert?

Ohne Wertung zum Programm selber, überlege ich doch gerade, wann ich in 
den letzten Jahren mal Bedarf für so ein Tool gehabt hätte. Grob 
geschätzt gar nicht.

Aber wers brauchen kann, warum nicht.

Oliver

von WebDepp (Gast)


Lesenswert?

Stimmt du hast recht, ein Minimierer ist aufwendiger, habe gerade 
nochmal in den alten Unterlagen gekramt. Das was wir damals gemacht 
hatten war stark eingeschränkt.

Zur Lesbarkeit: Prolog dient ja nur dazu den Term zu minimieren, wenn 
man das dann 'in schön' haben will parst man das nochmal extra oder 
schreibt sich in Prolog eine entspr. Ausgabefunktion. In modernen Prolog 
gibts auch print, usw. die Ausgabe im gewünschten Format ist kein 
Problem.

von Heiner K. (heinerkuhlmann)


Lesenswert?

@WebDepp

Du liegst daneben.

Minimiert wird mit espresso. Ein Kommandozeilen-Interface ist mit ein 
paar Zeilen Perl geschrieben. Damit kommt aber ein Laie, nicht zurecht.

Im Prinzip ist LogicBuddy eine GUI um espresso. Sie verbindet 
Wahrheitstabellen mit logischen Ausdrücken. Die logischen Ausrücke 
sollen einfach formuliert werden können. Damit sollen diejenigen 
unterstützt werden, die sich mit mathematischen Formulierungen schwer 
tun. Es wird eine Verbindung zwischen der Formulierung logischer 
Ausdrücke, Wahrheitstabellen, der Lösung über espresso und dem Ergebnis 
in einer Form, die einfach realisierbar ist, angeboten und das Ganze in 
alle Richtungen. In Teilen gibt es das im Web. Leider sind sie meistens 
nicht miteinander kompatibel, manche unausgegorene 
Mach-Mal-Eben-Studenten-Projekte.

Bei der Formulierung der logischen Ausdrücke kann es zu Irrtümern und 
Fehlern kommen, deren sinnvolle Behandlung ist eben nicht simpel. Ich 
habe tatsächlich überlegt, das mit Prolog zu machen, es aber verworfen, 
weil die Fehlerbehandlung im Wesentlichen imperativ ist und ein rekursiv 
entscheidender Parser ziemlich geradeaus formuliert werden kann. Eine 
hilfreiche Fehlerbehandlung ist der größte Aufwand, etwa 80%.

Wenn ich den Code in einem Jahr noch mal eben schnell anpassen will, 
dann ist es erforderlich, etwas ausführlicher und klarer zu schreiben. 
Das  braucht ein paar Bytes mehr als mal eben.

von Ich (Gast)


Lesenswert?

Gibts schon länger....
Nennt sich Logic Friday ;)

von Heiner K. (heinerkuhlmann)


Lesenswert?

Bekannt.

Läuft nur unter Windows.

Kennt nur * + ´ Notation.

Fehlermeldung wie: Parse Error ...

von Ich (Gast)


Lesenswert?

Heiner K. schrieb:
> Kennt nur * + ´ Notation.
Ist doch ausreichend

> Fehlermeldung wie: Parse Error ...
Hatte ich nie. Bin gespannt welche kryptischen Fehlermeldungen dieses 
Programm zu bieten hat :D

von Archie Backe (Gast)


Lesenswert?

Hier gibts das Gleiche in gut:

http://www.sontrak.com/screenshots.html

von Undankbare Meckertante (Gast)


Lesenswert?

Komm, also so einen Mist brauchst du hier schon mal gleich gar nicht
zu empfehlen!

1
bash: ./lf114_setup.exe: cannot execute binary file: Exec format error

Im Gegensatz dazu funktioniert das Programm von Heiner wenigstens.

von Peter D. (peda)


Lesenswert?

Man könnte sich aber auch eine CPLD-IDE runterladen, z.B. WinCUPL und 
dann den optimierten Output ansehen.
Neben Logikeingabe oder Wahrheitstabelle kann man damit auch beliebige 
Zählweisen (Sequencer) realisieren.

Ich habe aber auch schon mehrere Logik-ICs durch einen MC (ATmega48) 
ersetzt. Man ist damit sehr flexibel und oftmals braucht man keine 
Reaktionszeiten im MHz-Bereich. Man kann dann bequem in C programmieren.

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
Noch kein Account? Hier anmelden.