Hallo
ich habe nochmals nachgesehen und probiert.
Leider kann ich die Tabelle von Pluto25 so nicht eingeben. Wenn ich es richtig verstehe besteht die Tabelle aus 7 mal 3 Bytes. Gebe ich diese insgesamt 21 Bytes ein, werden am Schluss nur die letzten 3 Bytes aktiv. Die anderen werden irgendwie wieder hinausgeschoben. Und die letzten 3 Byzes bestimmen welche LEDs leuchten.
Beim Unterprogramm "Ausgeben" werden aus einem der Ausgabemuster nacheinander 7 Bits eingelesen. Dann ist das Schieberegister voll und das nächste Ausgabemuster kommt an die Reihe. Somit können nur 3 Ausgabemuster mit je 7 Bits eingelesen werden.
Anbei noch derselbe Bascom-Quellcode für die Schieberegister diesmal jedoch mit Hard-Spi, funktioniert auch.
Gruß und Dank
Alles anzeigen
ich habe nochmals nachgesehen und probiert.
Leider kann ich die Tabelle von Pluto25 so nicht eingeben. Wenn ich es richtig verstehe besteht die Tabelle aus 7 mal 3 Bytes. Gebe ich diese insgesamt 21 Bytes ein, werden am Schluss nur die letzten 3 Bytes aktiv. Die anderen werden irgendwie wieder hinausgeschoben. Und die letzten 3 Byzes bestimmen welche LEDs leuchten.
Beim Unterprogramm "Ausgeben" werden aus einem der Ausgabemuster nacheinander 7 Bits eingelesen. Dann ist das Schieberegister voll und das nächste Ausgabemuster kommt an die Reihe. Somit können nur 3 Ausgabemuster mit je 7 Bits eingelesen werden.
Anbei noch derselbe Bascom-Quellcode für die Schieberegister diesmal jedoch mit Hard-Spi, funktioniert auch.
Gruß und Dank
BASCOM-Quellcode: 10x7 Dot-Matrix Hard-SPI
- '4h Matrix Hard-SPI mit Schieberegister
- $regfile = "m8def.dat" 'Prozessor
- $crystal = 3684000 'Taktfrequenz
- $baud = 19200
- $hwstack = 40
- $swstack = 40
- $framesize = 80
- 'PortB.5 = SCLK = Takt > an SRCLK
- 'PortB.3 = Mosi = Dout > an Serin = Dateneingabe
- 'PortB.2 = Ss = SlaveSelect> an RCLK = Übernahme
- 'PortB.1 = Output enable > an Oe = Matrix ein/aus
- 'PortB.0 = LEDs ein/aus
- Oe Alias Portb.1
- Config Oe = Output
- Config Portb.0 = Output
- Config Spi = Hard , Master = Yes , Data_order = Msb 'SPI-Hard
- Spiinit
- Waitms 50
- Dim I As Byte
- Dim Ausgabemuster As Byte
- Oe = 1 ' Matrix aus
- Portb.0 = 1
- Ausgabemuster = &B1000_1000 'landet im Schieberegister A
- Gosub Ausgeben
- Waitms 50
- Ausgabemuster = &B0010_0000 'Landet im Schieberegister B
- Gosub Ausgeben
- Waitms 50
- Ausgabemuster = &B1100_0010 'landet im Schieberegister C
- Gosub Ausgeben
- Waitms 100
- Oe = 0 'Matrix ein
- End
- Ausgeben:
- Spiout Ausgabemuster , 1 'Byteausgabe
- Return
- 'hier sind folgende Bits gesetzt:
- 'Spalte C1, A7, A3
- 'Zeile B5, C6, C7