Hallo! Hab einen 1 aus 2 Dekoder(Multiplexer) in einem GAL16V8D realisiert und wollte dessen Funktion mit einem kleinen Programm mit einem 8051 testen (Intel 80C31BH). Das GAL Programm sieht wie folgt aus: declarations A, E1, E0 pin 1,2,3; Z pin 19 istype 'com'; equations Z = (E1 & A) # ( E0 & !A); test_vectors ([A, E0, E1]->[Z]) [0, 0, 0] -> .X.; [0, 1, 0] -> 1; [0, 0, 1] -> 0; [0, 1, 1] -> 1; [0, 0, 0] -> 0; [0, 1, 0] -> 0; [0, 0, 1] -> 1; [0, 1, 1] -> 1; END Die Funktion des GALS hab ich getestet und es passt auch. Leider habe ich mit dem C Programm Probleme bzw. ist wahrscheinlich meine Denkweise falsch. Ich habe die Leitungen A, E0, E1 mit meinem Evalboard verbunden ( A auf P1.5, E0 auf P1.6, E1 auf P1.7) und einen Taster habe ich an A (Pin 1 vom GAL) gelegt. Wenn nicht gedrückt ist das Potenzial auf Vcc habe auch einen Pullup angeschlossen und wenn der Taster betätigt wird schließt er gegen Masse. Nun ich habe mir mein Programm so überlegt, dass ich die E0, E1 erzeuge mit einer for-Schleife auf Port 1 und sie dann soweit shifte bis auf auf P1.6 bzw. auf P1.7 liegen. Danach habe ich zwei Funktionen für den Taster realisiert und diesen auch entprellt mit einem genügend langen Delay. Nun hab ich glaub ich ein kleines Verständnis Problem, ich will dann mit dem Taster einfach einen Schritt weiter gehen um die Funktion so wie in der Wahrheitstabelle zu überprüfen, aber leider funktioniert das nicht so. Jedes mal wenn ich am Ausgang vom GAL messe kommt nicht das gewünschte raus bzw. bei INT0. Wo ist das Problem? Steh momentan auf der Leitung...wäre um jede Hilfe sehr erfreut Das C-Programm ist im Anhang.. Mfg rocky
Hey P.K.! Ja habe ich, Pin 11 ist auf GND...irgendwie sind hier wohl ned sooo viele 8051 fans hier, leider...freu mich natürlich über jede konstruktive antwort Mfg rocky
Kann es sein, dass du dass Du die Klammern vergessen hast? Deine for-Schleife läuft immer durch, und Du wertest dann immer e0=1 und e1=1 aus. probiers mal so:
1 | for(i=0; i<4; i++) { |
2 | P1 = i << 6; |
3 | INT0 = (e1 & a) | (e0 & !a); |
4 | }
|
Hallo Robert! Danke das wars...mahh ich sehe auch nichts, jetzt kommt ein sinnvolles Ergebnis beim GAL raus, danke...so muss jetzt nur noch INT0 einlesen und dann das Ergebnis "grafisch" mit den LEDs anzeigen. Hatte leider nämlich nicht viel Zeit im Unterricht um es zu programmieren, bei der Abgabe hab ich es so abgegeben, naja wird wohl keine negative Note werden. Danke nochmals Mfg rocky
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.