Hallo uC-Freunde..
Ich wollte eine Porterweiterung mit dem Universal Schieberegister
74ls194 vornehmen (ja ich weiß... ich gewinne mit einen von denen
lediglich einen Pin, das reicht aber vorerst).
Ich habe jetzt einen Testaufbau gemacht, um zu schauen, ob ich das
Datenblatt
(http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=1;INDEX=0;FILENAME=A240%252FSN74194_74LS194%2523TEX.pdf;SID=26XDD7n6wQARoAAHSxRSIfbd8895a05bb6b51c2567b64c3bb16de)
richtig verstanden hab. Aber das ganze funktioniert nicht wirklich wie
ich mir das vorgestellt habe. Um genau zu sein es passiert gar nichts
wenn ich die (im Schaltplan) eingezeichneten Taster drücke.
Ich habe bereits das Schieberegister-Tutorial mehrfach durchgelesen,
jedoch komm ich auf keinen Grünen Zweig (obwohl das ja recht einfach ist
-.- )
Im Anhang habe ich Schaltplan drin.
Hier der Code, den ich verwende (Basic)
1 | $regfile = "ATtiny2313.dat"
|
2 | $crystal = 8000000
|
3 |
|
4 | Ddrb = &B11101111
|
5 | Portb = &B00010000
|
6 | Main:
|
7 | Do
|
8 | Portb.5 = 0 'S1 von low...
|
9 | Portb.5 = 1 'auf high ziehen (Parallel Load-Mode)
|
10 | Portb.6 = 0 'Taktsignal von low...
|
11 | Portb.6 = 1 'auf high ziehen, um den Status der 4 Taster zu laden
|
12 | Portb.5 = 0 'S1 wieder auf low (Shift Right mode)
|
13 | Portb.0 = Pinb.4 'LED1 dem Taster entsprechend an-/ausschalten
|
14 | Portb.6 = 0 'Takt...
|
15 | Portb.6 = 1 'um nächsten "Taster" an PINB.4 zu haben
|
16 | Portb.1 = Pinb.4 'LED2 entsprechend schalten.. usw.
|
17 | Portb.6 = 0
|
18 | Portb.6 = 1
|
19 | Portb.2 = Pinb.4
|
20 | Portb.6 = 0
|
21 | Portb.6 = 1
|
22 | Portb.3 = Pinb.4
|
23 | Loop
|
PS: SPI wollte ich nicht verwenden, da ich den kompletten PortB in der
Schaltung, in der der 74ls194 eigentlich zum Einsatz kommt für
LED-Ausgänge nutze. Die sollen an einem Port zusammenhängen, damit ich
eine komplette LED-Zeile in einem Rutsch bearbeiten kann.