Hallo, hab ein Problem bzw versteh das mit diesem Schieberegister nicht.
Ich hab eine LED Röhre mit 3 74HC595, diese hab ich an einen Atmega8 wie folgt angeschlossen,
DATA Port B0 und Pin 14 am 74HC...
Clock Port B1 und Pin 11 am 74HC...
Load Port B3 aund Pin 12 am 74HC...
Pin9 geht dann wieder an die 14 zum nächsten 74HC....
Nun hab ich folgenden Code im Imternet gefunden und an meins angepasst.
So der Code läuft auch, soll heißen die Segmente leuchten unterschiedlich eben alle 2 sek anders.Code:$regfile = "m8def.dat" $crystal = 8000000 $baud = 19200 Data_out Alias Portb.0 ' DAT - of the first 74HC595 Clock_out Alias Portb.1 ' SRCLK - 74HC595 Latch_out Alias Portb.3 ' RCLK Data_out_dir Alias Ddrb.0 Clock_out_dir Alias Ddrb.1 ' *** define direction regs *** Latch_out_dir Alias Ddrb.3 Const Shift_delay = 20 ' shift delay in microseconds Declare Sub Send_bytes() ' send byte array to shift registers Dim Tempbyte1 As Byte Dim Bytes(3) As Byte ' byte shift reg output buffer Dim I As Byte Reset Clock_out Reset Data_out Reset Latch_out ' set the data direction for I/O Set Clock_out_dir Set Data_out_dir Set Latch_out_dir Bytes(1) = &HAA Bytes(2) = &H55 Bytes(3) = &HFF Do Send_bytes Bytes(3) = Bytes(3) + 1 Bytes(2) = Bytes(2) + 1 Bytes(1) = Bytes(1) + 1 Wait 2 Loop Sub Send_bytes() For I = 3 To 1 Step -1 ' send byte array to shift regs Tempbyte1 = Bytes(i) Shiftout Data_out , Clock_out , Tempbyte1 , 0 , 8 , Shift_delay Next I Set Latch_out ' latch the shift reg to outputs Waitms 1 Reset Latch_out End Sub
Was ich nun nicht verstehe, ich kann auch in den Zeilen
Bytes(3) = Bytes(3) + 1
Bytes(2) = Bytes(2) + 1
Bytes(1) = Bytes(1) + 1
Zahlen schreiben, also z.B. Bytes(3) = 100
aber gibts denn keine Logik bei den Zahlen? was bewirken denn die Zahlen? z.B. 3 da geht das unterste Feld an, bei 33 das nächste.
Kanns mir bitte einer erklären? Mir fehlt die Logik dahinter.
Oder einen anderen Code Posten der eine Logik enthällt. oder muss ich schaun welche LEDs an welchen Ausgängen der 74HC hängen?
Danke kollimann
Danke







Zitieren

Lesezeichen