Hallo,
ich wurde vor einiger Zeit mal gefragt, ob ich einen GAL16V8D
progammieren kann.
Und zwar einen art Zähler der von 1-6 zählt und auf knopfdruck dann die
aktuelle zahl anhand von 7 LED's ausspuckt.
Und zwar in form eines Würfels.
Naja hab gsacht ich kanns mal probieren, aber ich bekomms einfach nicht
hin.
Meine Fragen an euch:
Wie programmiere ich diesen GAL?
Ist so ein zähler überhaupt möglich?
Hat jemand vllt. einige Codebeispiele, oder sogar genau so eine
schaltung? ;)
Was ich zur verfügng hab währe ein Taster, 7 LED's und den µC. mehr soll
auch angeblich nicht benötigt werden.
MfG
Weble
Für Würfel ist ein 3Bit-Johnson-Zähler mit anschließendem Decoder
geeignet, der hat 6 erlaubte Zustände. Für die LEDs sind 4 Ausgänge
nötig, also gesamt 7 Register.
Vielleicht läßt es sich noch auf 6 oder 5 reduzieren, wenn man die
state-machine passend austüftelt, dass ein Zählerbit gleichzeitig eine
LED ansteuern kann.
Anordnung der vier LED-Gruppen:
3 1
2 0 2
1 3
Augen/Led-Gruppe 3/2/1/0:
1: 0001
2: 0010
3: 0011
4: 1010
5: 1101
6: 1110
die restlichen zehn sind verbotene Zustände.
Gruppe 3 und 0 sind jeweils halbe/halbe verteilt, die könnte man in der
Statemachine direkt zählen. Die Zählreihenfolge ist ja egal.
Danke!
Jetzt nur noch die frage, wie programmiere ich ein 3Bit-Johnson-Zähler,
wie kann ich z.B. pin 2 als eingang und pin 12 13 14 15 als ausgänge
definieren?
Ich hatte bisher nur etwas mit dem ATtiny2313 zu tun, und das is wieder
was ganz anderes ;(
Ein 3Bit-Johnson-Zähler hat dieses Schema:
000
001
011
111
110
100
und wieder 000
das ist ein 3Bit-Schieberegister, das den letzten Ausgang zum seriellen
Eingang invertiert rückführt.
aber das Schema für die 4 LED-Gruppen kann man auch direkt als
statemachine formulieren, vier Register-Ausgänge nehmen nacheinander die
genannten 6 Zählerstände ein, wenn der Stop-Befehl kommt, muß der Takt
anhalten oder ein 5.Register repräsentiert den Zustand "angehalten".
kommt auf Deine Programmierumgebung an.
Du kannst "wenn Du kannst" HDL,VHDL o.ä benutzen.( etwas übertrieben )
Sonst gibt es dafür so genannte "GAL Assembler".
Ich habe früher einen Gal Assembler von MAXON auf dem Amiga benutzt.
Da konnte ich die komplette Logiktabelle eingeben.
Google bringt da einiges. Such mal danach.
Danke!
Nächste fragen ;)
Wie heißen die register ;)
Wie kann ich diese am besten ansprechen?
Gibts sowas wie Interrupts?
Wie mach ich am besten Schleifen ? g
WIe ich das ganze nun verwickliche stelle ich mir so vor:
Ne endlosschleife die den 3Bit-Johnson-Zähler zählt und jeweils imemr
die 3 register verändert g
und auf knopfdruck wird ein interrupt ausgelöst, der dann den aktuellen
stand des zählers an die dioden weitergibt
Ein GAL ist kein Mikroprozessor sondern ein Logikkbaustein.
Da gibt es keine Interrupts und Schleifen sind auch so ohne weiters
nicht möglich.
Für Dein Vorhaben solltest Du Dir besser einen kleinen Mikrocontroller
besorgen und den so programmieren wie Du das kennst.
Gruß
Dirk
Ich hab mal nachgeschaut, Würfel mit TTL-Logik waren ein großes Thema
(mehrere Seiten) in Elektor 1972, im Sonderheft "platine72", später
nochmal 1975 mit den dann aufgekommenen CD40xx. Meistens mit Zählern
7490, 7492 oder CD4022, aber auch eine Schaltung mit 2*2 JK_Flipflops
7473 und vier Germaniumdioden, die direkt die Bitmuster für die vier
LED-Gruppen erzeugen. Ich habe das damals nachgebaut, müßte noch
irgendwo rumliegen.
Die PAL-Beschreibungssprache LOGIC kannte ich nicht, die Beschreibung
der Statemachine ist nicht gerade selbsterklärend.
Für ein ordentliches Design fehlen mir noch die unzulässigen Zustände,
immerhin sind von 16 möglichen nur 6 benutzt, ein Resetzustand "alle
Null" ist noch berücksichtigt, aber die restlichen 9 fehlen.
Hi ich hab auch ma paar fragen zu einem GAL16V8D
ich mache gerade eine Ausbildung und wir sollen etwas über dieses GAL
Element herausfinden ich hab aber keinen plan davon T.T kann mir jemand
helfen???