10x10 Charlieplexed LED anzeige ansteuern
Guten tag, ich habe eine 10x10 Charlieplexed LED anzeige gebaut mit dieser Zeichnung:
Anhang 25116
Meine microcontroller ist eine ATmega88 und es gibt 11 Tri-State-Pin verwendet:
Pin1 Alias Portd.2
Pin2 Alias Portd.3
Pin3 Alias Portd.4
Pin4 Alias Portd.5
Pin5 Alias Portd.6
Pin6 Alias Portc.0
Pin7 Alias Portc.1
Pin8 Alias Portc.2
Pin9 Alias Portc.3
Pin10 Alias Portc.4
Pin11 Alias Portc.5
Tri-state ist X, 0, 1
X = nichts
0 = 0 volt
1 = 5 volt
Problem:
Mein Programm ist zu groß und nicht optimal. Mijn Ziel ist um text auf anzeige von rechts nach links.
Kennt ihr vielleicht eine Möglichkeit das Programm effektiver zu schreiben?
Vielen Dank für eure Hilfe
(Dieser Code-Anzeige, den Buchstaben 'B' von rechts nach links)
Code:
$regfile = "m88def.dat"
$crystal = 8000000
$baud = 19200
Dim A As Byte , B As Word , C As Word
Config Portd = Input
Config Portc = Input
Pin1 Alias Portd.2
Pin2 Alias Portd.3
Pin3 Alias Portd.4
Pin4 Alias Portd.5
Pin5 Alias Portd.6
Pin6 Alias Portc.0
Pin7 Alias Portc.1
Pin8 Alias Portc.2
Pin9 Alias Portc.3
Pin10 Alias Portc.4
Pin11 Alias Portc.5
Statepin1 Alias Ddrd.2
Statepin2 Alias Ddrd.3
Statepin3 Alias Ddrd.4
Statepin4 Alias Ddrd.5
Statepin5 Alias Ddrd.6
Statepin6 Alias Ddrc.0
Statepin7 Alias Ddrc.1
Statepin8 Alias Ddrc.2
Statepin9 Alias Ddrc.3
Statepin10 Alias Ddrc.4
Statepin11 Alias Ddrc.5
A = 0.5
B = 0
C = 750
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Do
For B = 0 To C Step 1
Gosub Led92
Gosub Led93
Gosub Led94
Gosub Led95
Gosub Led96
Gosub Led97
Gosub Led98
Next
For B = 0 To C Step 1
Gosub Led82
Gosub Led83
Gosub Led84
Gosub Led85
Gosub Led86
Gosub Led87
Gosub Led88
Gosub Led92
Gosub Led95
Gosub Led98
Next
For B = 0 To C Step 1
Gosub Led72
Gosub Led73
Gosub Led74
Gosub Led75
Gosub Led76
Gosub Led77
Gosub Led78
Gosub Led82
Gosub Led85
Gosub Led88
Gosub Led92
Gosub Led95
Gosub Led98
Next
For B = 0 To C Step 1
Gosub Led62
Gosub Led63
Gosub Led64
Gosub Led65
Gosub Led66
Gosub Led67
Gosub Led68
Gosub Led72
Gosub Led75
Gosub Led78
Gosub Led82
Gosub Led85
Gosub Led88
Gosub Led93
Gosub Led94
Gosub Led96
Gosub Led97
Next
For B = 0 To C Step 1
Gosub Led52
Gosub Led53
Gosub Led54
Gosub Led55
Gosub Led56
Gosub Led57
Gosub Led58
Gosub Led62
Gosub Led65
Gosub Led68
Gosub Led72
Gosub Led75
Gosub Led78
Gosub Led83
Gosub Led84
Gosub Led86
Gosub Led87
Next
For B = 0 To C Step 1
Gosub Led42
Gosub Led43
Gosub Led44
Gosub Led45
Gosub Led46
Gosub Led47
Gosub Led48
Gosub Led52
Gosub Led55
Gosub Led58
Gosub Led62
Gosub Led65
Gosub Led68
Gosub Led73
Gosub Led74
Gosub Led76
Gosub Led77
Next
For B = 0 To C Step 1
Gosub Led32
Gosub Led33
Gosub Led34
Gosub Led35
Gosub Led36
Gosub Led37
Gosub Led38
Gosub Led42
Gosub Led45
Gosub Led48
Gosub Led52
Gosub Led55
Gosub Led58
Gosub Led63
Gosub Led64
Gosub Led66
Gosub Led67
Next
For B = 0 To C Step 1
Gosub Led22
Gosub Led23
Gosub Led24
Gosub Led25
Gosub Led26
Gosub Led27
Gosub Led28
Gosub Led32
Gosub Led35
Gosub Led38
Gosub Led42
Gosub Led45
Gosub Led48
Gosub Led53
Gosub Led54
Gosub Led56
Gosub Led57
Next
For B = 0 To C Step 1
Gosub Led12
Gosub Led13
Gosub Led14
Gosub Led15
Gosub Led16
Gosub Led17
Gosub Led18
Gosub Led22
Gosub Led25
Gosub Led28
Gosub Led32
Gosub Led35
Gosub Led38
Gosub Led43
Gosub Led44
Gosub Led46
Gosub Led47
Next
For B = 0 To C Step 1
Gosub Led2
Gosub Led3
Gosub Led4
Gosub Led5
Gosub Led6
Gosub Led7
Gosub Led8
Gosub Led12
Gosub Led15
Gosub Led18
Gosub Led22
Gosub Led25
Gosub Led28
Gosub Led33
Gosub Led34
Gosub Led36
Gosub Led37
Next
For B = 0 To C Step 1
Gosub Led2
Gosub Led5
Gosub Led8
Gosub Led12
Gosub Led15
Gosub Led18
Gosub Led23
Gosub Led24
Gosub Led26
Gosub Led27
Next
For B = 0 To C Step 1
Gosub Led2
Gosub Led5
Gosub Led8
Gosub Led13
Gosub Led14
Gosub Led16
Gosub Led17
Next
For B = 0 To C Step 1
Gosub Led3
Gosub Led4
Gosub Led6
Gosub Led7
Next
Loop
End
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Restart:
Waitms A
Portd.2 = 0
Portd.3 = 0
Portd.4 = 0
Portd.5 = 0
Portd.6 = 0
Portc.0 = 0
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0
Portc.4 = 0
Portc.5 = 0
Ddrd.2 = 0
Ddrd.3 = 0
Ddrd.4 = 0
Ddrd.5 = 0
Ddrd.6 = 0
Ddrc.0 = 0
Ddrc.1 = 0
Ddrc.2 = 0
Ddrc.3 = 0
Ddrc.4 = 0
Ddrc.5 = 0
Return
Led0:
gosub restart
Return
Led1:
Statepin1 = 1
Statepin2 = 1
Pin1 = 1
gosub restart
Return
Led2:
Statepin1 = 1
Statepin3 = 1
Pin1 = 1
gosub restart
Return
Led3:
Statepin1 = 1
Statepin4 = 1
Pin1 = 1
gosub restart
Return
Led4:
Statepin1 = 1
Statepin5 = 1
Pin1 = 1
gosub restart
Return
Led5:
Statepin1 = 1
Statepin6 = 1
Pin1 = 1
gosub restart
Return
Led6:
Statepin1 = 1
Statepin7 = 1
Pin1 = 1
gosub restart
Return
Led7:
Statepin1 = 1
Statepin8 = 1
Pin1 = 1
gosub restart
Return
Led8:
Statepin1 = 1
Statepin9 = 1
Pin1 = 1
gosub restart
Return
Led9:
Statepin1 = 1
Statepin10 = 1
Pin1 = 1
gosub restart
Return
Led10:
Statepin1 = 1
Statepin11 = 1
Pin1 = 1
gosub restart
Return
Led11:
Statepin1 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led12:
Statepin3 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led13:
Statepin4 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led14:
Statepin5 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led15:
Statepin6 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led16:
Statepin7 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led17:
Statepin8 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led18:
Statepin9 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led19:
Statepin10 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led20:
Statepin11 = 1
Statepin2 = 1
Pin2 = 1
gosub restart
Return
Led21:
Statepin1 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led22:
Statepin2 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led23:
Statepin4 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led24:
Statepin5 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led25:
Statepin6 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led26:
Statepin7 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led27:
Statepin8 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led28:
Statepin9 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led29:
Statepin10 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led30:
Statepin11 = 1
Statepin3 = 1
Pin3 = 1
gosub restart
Return
Led31:
Statepin1 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led32:
Statepin2 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led33:
Statepin3 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led34:
Statepin5 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led35:
Statepin6 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led36:
Statepin7 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led37:
Statepin8 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led38:
Statepin9 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led39:
Statepin10 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led40:
Statepin11 = 1
Statepin4 = 1
Pin4 = 1
gosub restart
Return
Led41:
Statepin1 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led42:
Statepin2 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led43:
Statepin3 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led44:
Statepin4 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led45:
Statepin6 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led46:
Statepin7 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led47:
Statepin8 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led48:
Statepin9 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led49:
Statepin10 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led50:
Statepin11 = 1
Statepin5 = 1
Pin5 = 1
gosub restart
Return
Led51:
Statepin1 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led52:
Statepin2 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led53:
Statepin3 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led54:
Statepin4 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led55:
Statepin5 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led56:
Statepin7 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led57:
Statepin8 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led58:
Statepin9 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led59:
Statepin10 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led60:
Statepin11 = 1
Statepin6 = 1
Pin6 = 1
gosub restart
Return
Led61:
Statepin1 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led62:
Statepin2 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led63:
Statepin3 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led64:
Statepin4 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led65:
Statepin5 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led66:
Statepin6 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led67:
Statepin8 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led68:
Statepin9 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led69:
Statepin10 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led70:
Statepin11 = 1
Statepin7 = 1
Pin7 = 1
gosub restart
Return
Led71:
Statepin1 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led72:
Statepin2 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led73:
Statepin3 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led74:
Statepin4 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led75:
Statepin5 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led76:
Statepin6 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led77:
Statepin7 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led78:
Statepin9 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led79:
Statepin10 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led80:
Statepin11 = 1
Statepin8 = 1
Pin8 = 1
gosub restart
Return
Led81:
Statepin1 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led82:
Statepin2 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led83:
Statepin3 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led84:
Statepin4 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led85:
Statepin5 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led86:
Statepin6 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led87:
Statepin7 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led88:
Statepin8 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led89:
Statepin10 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led90:
Statepin11 = 1
Statepin9 = 1
Pin9 = 1
gosub restart
Return
Led91:
Statepin1 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led92:
Statepin2 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led93:
Statepin3 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led94:
Statepin4 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led95:
Statepin5 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led96:
Statepin6 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led97:
Statepin7 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led98:
Statepin8 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led99:
Statepin9 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Led100:
Statepin11 = 1
Statepin10 = 1
Pin10 = 1
gosub restart
Return
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
radbruch
Das wichtigste zuerst: Das ist kein Charliplexing! Das ist eine ganz normale Matrix.
Eine normale 10x10 LED Matrix hat 20 pins notig:
(Dies ist ein 8x8, weil ich nicht finden konnte 10x10)
Bild hier
Mein Charlieplexed 10x10 LED Matrix hat aber 11 pins notig:
Bild hier
Liste der Anhänge anzeigen (Anzahl: 5)
Zitat:
Zitat von
radbruch
Wie sieht denn dein Aufbau aus?
Bild hier
Zitat:
Zitat von
radbruch
Die LEDS habe ich mal so angenommen:
LED1 oben links
LED10 unten links
LED91 oben rechts
LED100 unten rechts
LED1 oben rechts
LED10 unten rechts
LED91 oben links
LED100 unten links
Vielen dank fur die code aber er ist zu groß:
Bild hier
Code:
$regfile = "m88def.dat"
$crystal = 8000000
$baud = 19200
Config Portd = Input ' alle Pins auf Z-State setzen
Config Portc = Input ' (Eingang ohne PullUp)
Portc = 0
Portd = 0
'( Pinbelegung
Pin1 Alias Portd.2
Pin2 Alias Portd.3
Pin3 Alias Portd.4
Pin4 Alias Portd.5
Pin5 Alias Portd.6
Pin6 Alias Portc.0
Pin7 Alias Portc.1
Pin8 Alias Portc.2
Pin9 Alias Portc.3
Pin10 Alias Portc.4
Pin11 Alias Portc.5
')
'( Aufteilung der Datenbits
DDRD DDRC PORTD PORTC
Led(001) = &B11000 000000 10000 000000
Led(002) = &B10100 000000 10000 000000
Led(003) = &B10010 000000 10000 000000
Led(004) = &B10001 000000 10000 000000
Led(005) = &B10000 100000 10000 000000
Led(006) = &B10000 010000 10000 000000
Led(007) = &B10000 001000 10000 000000
Led(008) = &B10000 000100 10000 000000
Led(009) = &B10000 000010 10000 000000
Led(010) = &B10000 000001 10000 000000
Led(011) = &B11000 000000 01000 000000
Led(012) = &B01100 000000 01000 000000
Led(013) = &B01010 000000 01000 000000
Led(014) = &B01001 000000 01000 000000
Led(015) = &B01000 100000 01000 000000
Led(016) = &B01000 010000 01000 000000
Led(017) = &B01000 001000 01000 000000
Led(018) = &B01000 000100 01000 000000
Led(019) = &B01000 000010 01000 000000
Led(020) = &B01000 000001 01000 000000
Led(021) = &B10100 000000 00100 000000
Led(022) = &B01100 000000 00100 000000
Led(023) = &B00110 000000 00100 000000
Led(024) = &B00101 000000 00100 000000
Led(025) = &B00100 100000 00100 000000
Led(026) = &B00100 010000 00100 000000
Led(027) = &B00100 001000 00100 000000
Led(028) = &B00100 000100 00100 000000
Led(029) = &B00100 000010 00100 000000
Led(030) = &B00100 000001 00100 000000
Led(031) = &B10010 000000 00010 000000
Led(032) = &B01010 000000 00010 000000
Led(033) = &B00110 000000 00010 000000
Led(034) = &B00011 000000 00010 000000
Led(035) = &B00010 100000 00010 000000
Led(036) = &B00010 010000 00010 000000
Led(037) = &B00010 001000 00010 000000
Led(038) = &B00010 000100 00010 000000
Led(039) = &B00010 000010 00010 000000
Led(040) = &B00010 000001 00010 000000
Led(041) = &B10001 000000 00001 000000
Led(042) = &B01001 000000 00001 000000
Led(043) = &B00101 000000 00001 000000
Led(044) = &B00011 000000 00001 000000
Led(045) = &B00001 100000 00001 000000
Led(046) = &B00001 010000 00001 000000
Led(047) = &B00001 001000 00001 000000
Led(048) = &B00001 000100 00001 000000
Led(049) = &B00001 000010 00001 000000
Led(050) = &B00001 000001 00001 000000
Led(051) = &B10000 100000 00000 100000
Led(052) = &B01000 100000 00000 100000
Led(053) = &B00100 100000 00000 100000
Led(054) = &B00010 100000 00000 100000
Led(055) = &B00001 100000 00000 100000
Led(056) = &B00000 110000 00000 100000
Led(057) = &B00000 101000 00000 100000
Led(058) = &B00000 100100 00000 100000
Led(059) = &B00000 100010 00000 100000
Led(060) = &B00000 100001 00000 100000
Led(061) = &B10000 010000 00000 010000
Led(062) = &B01000 010000 00000 010000
Led(063) = &B00100 010000 00000 010000
Led(064) = &B00010 010000 00000 010000
Led(065) = &B00001 010000 00000 010000
Led(066) = &B00000 110000 00000 010000
Led(067) = &B00000 011000 00000 010000
Led(068) = &B00000 010100 00000 010000
Led(069) = &B00000 010010 00000 010000
Led(070) = &B00000 010001 00000 010000
Led(071) = &B10000 001000 00000 001000
Led(072) = &B01000 001000 00000 001000
Led(073) = &B00100 001000 00000 001000
Led(074) = &B00010 001000 00000 001000
Led(075) = &B00001 001000 00000 001000
Led(076) = &B00000 101000 00000 001000
Led(077) = &B00000 011000 00000 001000
Led(078) = &B00000 001100 00000 001000
Led(079) = &B00000 001010 00000 001000
Led(080) = &B00000 001001 00000 001000
Led(081) = &B10000 000100 00000 000100
Led(082) = &B01000 000100 00000 000100
Led(083) = &B00100 000100 00000 000100
Led(084) = &B00010 000100 00000 000100
Led(085) = &B00001 000100 00000 000100
Led(086) = &B00000 100100 00000 000100
Led(087) = &B00000 010100 00000 000100
Led(088) = &B00000 001100 00000 000100
Led(089) = &B00000 000110 00000 000100
Led(090) = &B00000 000101 00000 000100
Led(091) = &B10000 000010 00000 000010
Led(092) = &B01000 000010 00000 000010
Led(093) = &B00100 000010 00000 000010
Led(094) = &B00010 000010 00000 000010
Led(095) = &B00001 000010 00000 000010
Led(096) = &B00000 100010 00000 000010
Led(097) = &B00000 010010 00000 000010
Led(098) = &B00000 001010 00000 000010
Led(099) = &B00000 000110 00000 000010
Led(100) = &B00000 000011 00000 000010
')
'( Inhalt der Databytes
Data_ddrd(LED_Nr) &Bx65432xx ' x wird durch 0 ersetzt!
Data_ddrc(LED-Nr) &Bxx543210
Data_portd(LED_Nr) &Bx65432xx
Data_portc(LED_Nr) &Bxx543210
')
Dim Data_ddrd(100) As Byte
Dim Data_ddrc(100) As Byte
Dim Data_portd(100) As Byte
Dim Data_portc(100) As Byte
Dim Temp_ddrd As Byte
Dim Temp_ddrc As Byte
Dim Temp_portd As Byte
Dim Temp_portc As Byte
Dim Bildspeicher(12) As Word
Dim Bytenr As Byte , Bitnr As Byte , Lednr As Byte
Dim Zaehler_anzeigen As Word , Zaehler_scrollen As Byte
Dim Temp As Byte , N As Byte
Declare Sub Set_charliedata
Declare Sub Set_bildspeicher
Declare Sub Anzeigen
Declare Sub Scrollen_links(byval Wiederholen As Byte)
Declare Sub Scrollen_runter(byval Wiederholen As Byte)
Sub Set_bildspeicher ' Bildbereich: x=Word 2-11 y=Bit 10-1 (+ Rand zum Scrollen)
'Bildspeicher(0) = &B109876543210
Bildspeicher(01) = &B000000000000
Bildspeicher(02) = &B011111111110
Bildspeicher(03) = &B010000000010
Bildspeicher(04) = &B010111000010
Bildspeicher(05) = &B010100100010
Bildspeicher(06) = &B010111000010
Bildspeicher(07) = &B010100100010
Bildspeicher(08) = &B010100100010
Bildspeicher(09) = &B010111000010
Bildspeicher(10) = &B010000000010
Bildspeicher(11) = &B011111111110
Bildspeicher(12) = &B000000000000
End Sub
Do
Set_bildspeicher ' B anzeigen
For Zaehler_anzeigen = 0 To 10000
Anzeigen
Next Zaehler_anzeigen
Set_bildspeicher 'nach links scrollen mit Umlauf
For Zaehler_scrollen = 0 To 55
For Zaehler_anzeigen = 0 To 1000
Anzeigen
Next Zaehler_anzeigen
Scrollen_links 1
Next Zaehler_scrollen
Set_bildspeicher ' nach links rausschieben
For Zaehler_scrollen = 0 To 10
For Zaehler_anzeigen = 0 To 2000
Anzeigen
Next Zaehler_anzeigen
Scrollen_links 0
Next Zaehler_scrollen
Set_bildspeicher 'runterscrollen mit Umlauf
For Zaehler_scrollen = 0 To 55
For Zaehler_anzeigen = 0 To 1000
Anzeigen
Next Zaehler_anzeigen
Scrollen_runter 1
Next Zaehler_scrollen
Set_bildspeicher ' nach unten rausschieben
For Zaehler_scrollen = 0 To 10
For Zaehler_anzeigen = 0 To 2000
Anzeigen
Next Zaehler_anzeigen
Scrollen_runter 0
Next Zaehler_scrollen
Loop
End
Sub Anzeigen
For Bytenr = 2 To 11 ' sichtbare Bytes im Bildspeicher von oben nach unten
For Bitnr = 10 To 1 Step -1 ' sichtbare Bits im Bildspeicher von links nach rechts
If Bildspeicher(bytenr).bitnr = 1 Then ' wenn Bit im Bildspeicher gesetzt dann ausgeben
'LED berechnen: LED1 oben links, LED10 unten links, LED91 oben rechts, LED100 unten rechts
Temp = 10 - Bitnr ' Spalte ist Bit10 - bitnr
Temp = Temp * 10 ' 10 Leds pro Spalte,
Lednr = Bytenr - 1 ' LED1 befindet sich in Bildspeicher(2), LED2 in Bildspeicher(3) usw.
Lednr = Lednr + Temp ' Spalten + Zeilen
'LED einschalten
Temp_ddrc = Ddrd And &B11000000 ' die nicht verwendeten Bits merken
Temp_ddrd = Ddrc And &B10000011
Temp_portc = Portd And &B11000000
Temp_portd = Portc And &B10000011
Ddrd = Temp_ddrd ' vorsichtshalber alle Charliepins auf Z-State setzen
Ddrc = Temp_ddrc ' die nicht verwendeten Pins bleiben unberührt
Portd = Temp_portd ' (könnte man aus Zeitgründen eventuell weglassen)
Portc = Temp_portc
Ddrd = Temp_ddrd Or Data_ddrd(lednr) ' Charliepins der LED setzen
Ddrc = Temp_ddrc Or Data_ddrc(lednr) ' die nicht verwendeten Pins bleiben unberührt
Portd = Temp_portd Or Data_portd(lednr)
Portc = Temp_portc Or Data_portc(lednr)
End If
Next Bitnr
Next Bytenr
End Sub
Sub Scrollen_links(byval Wiederholen As Byte)
For N = 2 To 11
If Wiederholen = 1 Then
Bildspeicher(n).0 = Bildspeicher(n).11
Else
Bildspeicher(n).0 = 0
End If
Bildspeicher(n) = Bildspeicher(n) * 2
Next N
End Sub
Sub Scrollen_runter(byval Wiederholen As Byte)
If Wiederholen = 1 Then
Bildspeicher(1) = Bildspeicher(12)
Else
Bildspeicher(1) = 0
End If
For N = 12 To 2 Step -1
Bildspeicher(n) = Bildspeicher(n - 1)
Next N
End Sub
Sub Set_charliedata
For N = 1 To 100
Data_ddrd(n) = 0 ' Dummywerte setzen
Data_ddrc(n) = 0
Data_portd(n) = 0
Data_portc(n) = 0
Next N
Data_ddrd(001) = &B00110000
Data_ddrc(001) = &B00000000
Data_portd(001) = &B00100000
Data_portc(001) = &B00000000
Data_ddrd(002) = &B00101000
Data_ddrc(002) = &B00000000
Data_portd(002) = &B00100000
Data_portc(002) = &B00000000
Data_ddrd(003) = &B00100100
Data_ddrc(003) = &B00000000
Data_portd(003) = &B00100000
Data_portc(003) = &B00000000
Data_ddrd(004) = &B00100010
Data_ddrc(004) = &B00000000
Data_portd(004) = &B00100000
Data_portc(004) = &B00000000
Data_ddrd(005) = &B00100001
Data_ddrc(005) = &B10000000
Data_portd(005) = &B00100000
Data_portc(005) = &B00000000
Data_ddrd(006) = &B00100000
Data_ddrc(006) = &B01000000
Data_portd(006) = &B00100000
Data_portc(006) = &B00000000
Data_ddrd(007) = &B00100000
Data_ddrc(007) = &B00100000
Data_portd(007) = &B00100000
Data_portc(007) = &B00000000
Data_ddrd(008) = &B00100000
Data_ddrc(008) = &B00010000
Data_portd(008) = &B00100000
Data_portc(008) = &B00000000
Data_ddrd(009) = &B00100000
Data_ddrc(009) = &B00001000
Data_portd(009) = &B00100000
Data_portc(009) = &B00000000
Data_ddrd(010) = &B00100000
Data_ddrc(010) = &B00000100
Data_portd(010) = &B00100000
Data_portc(010) = &B00000000
Data_ddrd(011) = &B00110000
Data_ddrc(011) = &B00000000
Data_portd(011) = &B00010000
Data_portc(011) = &B00000000
Data_ddrd(012) = &B00011000
Data_ddrc(012) = &B00000000
Data_portd(012) = &B00010000
Data_portc(012) = &B00000000
Data_ddrd(013) = &B00010100
Data_ddrc(013) = &B00000000
Data_portd(013) = &B00010000
Data_portc(013) = &B00000000
Data_ddrd(014) = &B00010010
Data_ddrc(014) = &B00000000
Data_portd(014) = &B00010000
Data_portc(014) = &B00000000
Data_ddrd(015) = &B00010000
Data_ddrc(015) = &B10000000
Data_portd(015) = &B00010000
Data_portc(015) = &B00000000
Data_ddrd(016) = &B00010000
Data_ddrc(016) = &B01000000
Data_portd(016) = &B00010000
Data_portc(016) = &B00000000
Data_ddrd(017) = &B00010000
Data_ddrc(017) = &B00100000
Data_portd(017) = &B00010000
Data_portc(017) = &B00000000
Data_ddrd(018) = &B00010000
Data_ddrc(018) = &B00010000
Data_portd(018) = &B00010000
Data_portc(018) = &B00000000
Data_ddrd(019) = &B00010000
Data_ddrc(019) = &B00001000
Data_portd(019) = &B00010000
Data_portc(019) = &B00000000
Data_ddrd(020) = &B00010000
Data_ddrc(020) = &B00000100
Data_portd(020) = &B00010000
Data_portc(020) = &B00000000
Data_ddrd(021) = &B00101000
Data_ddrc(021) = &B00000000
Data_portd(021) = &B00001000
Data_portc(021) = &B00000000
Data_ddrd(022) = &B00011000
Data_ddrc(022) = &B00000000
Data_portd(022) = &B00001000
Data_portc(022) = &B00000000
Data_ddrd(023) = &B00001100
Data_ddrc(023) = &B00000000
Data_portd(023) = &B00001000
Data_portc(023) = &B00000000
Data_ddrd(024) = &B00001010
Data_ddrc(024) = &B00000000
Data_portd(024) = &B00001000
Data_portc(024) = &B00000000
Data_ddrd(025) = &B00001000
Data_ddrc(025) = &B10000000
Data_portd(025) = &B00001000
Data_portc(025) = &B00000000
Data_ddrd(026) = &B00001000
Data_ddrc(026) = &B01000000
Data_portd(026) = &B00001000
Data_portc(026) = &B00000000
Data_ddrd(027) = &B00001000
Data_ddrc(027) = &B00100000
Data_portd(027) = &B00001000
Data_portc(027) = &B00000000
Data_ddrd(028) = &B00001000
Data_ddrc(028) = &B00010000
Data_portd(028) = &B00001000
Data_portc(028) = &B00000000
Data_ddrd(029) = &B00001000
Data_ddrc(029) = &B00001000
Data_portd(029) = &B00001000
Data_portc(029) = &B00000000
Data_ddrd(030) = &B00001000
Data_ddrc(030) = &B00000100
Data_portd(030) = &B00001000
Data_portc(030) = &B00000000
Data_ddrd(031) = &B00100100
Data_ddrc(031) = &B00000000
Data_portd(031) = &B00000100
Data_portc(031) = &B00000000
Data_ddrd(032) = &B00010100
Data_ddrc(032) = &B00000000
Data_portd(032) = &B00000100
Data_portc(032) = &B00000000
Data_ddrd(033) = &B00001100
Data_ddrc(033) = &B00000000
Data_portd(033) = &B00000100
Data_portc(033) = &B00000000
Data_ddrd(034) = &B00000110
Data_ddrc(034) = &B00000000
Data_portd(034) = &B00000100
Data_portc(034) = &B00000000
Data_ddrd(035) = &B00000100
Data_ddrc(035) = &B10000000
Data_portd(035) = &B00000100
Data_portc(035) = &B00000000
Data_ddrd(036) = &B00000100
Data_ddrc(036) = &B01000000
Data_portd(036) = &B00000100
Data_portc(036) = &B00000000
Data_ddrd(037) = &B00000100
Data_ddrc(037) = &B00100000
Data_portd(037) = &B00000100
Data_portc(037) = &B00000000
Data_ddrd(038) = &B00000100
Data_ddrc(038) = &B00010000
Data_portd(038) = &B00000100
Data_portc(038) = &B00000000
Data_ddrd(039) = &B00000100
Data_ddrc(039) = &B00001000
Data_portd(039) = &B00000100
Data_portc(039) = &B00000000
Data_ddrd(040) = &B00000100
Data_ddrc(040) = &B00000100
Data_portd(040) = &B00000100
Data_portc(040) = &B00000000
Data_ddrd(041) = &B00100010
Data_ddrc(041) = &B00000000
Data_portd(041) = &B00000010
Data_portc(041) = &B00000000
Data_ddrd(042) = &B00010010
Data_ddrc(042) = &B00000000
Data_portd(042) = &B00000010
Data_portc(042) = &B00000000
Data_ddrd(043) = &B00001010
Data_ddrc(043) = &B00000000
Data_portd(043) = &B00000010
Data_portc(043) = &B00000000
Data_ddrd(044) = &B00000110
Data_ddrc(044) = &B00000000
Data_portd(044) = &B00000010
Data_portc(044) = &B00000000
Data_ddrd(045) = &B00000010
Data_ddrc(045) = &B10000000
Data_portd(045) = &B00000010
Data_portc(045) = &B00000000
Data_ddrd(046) = &B00000010
Data_ddrc(046) = &B01000000
Data_portd(046) = &B00000010
Data_portc(046) = &B00000000
Data_ddrd(047) = &B00000010
Data_ddrc(047) = &B00100000
Data_portd(047) = &B00000010
Data_portc(047) = &B00000000
Data_ddrd(048) = &B00000010
Data_ddrc(048) = &B00010000
Data_portd(048) = &B00000010
Data_portc(048) = &B00000000
Data_ddrd(049) = &B00000010
Data_ddrc(049) = &B00001000
Data_portd(049) = &B00000010
Data_portc(049) = &B00000000
Data_ddrd(050) = &B00000010
Data_ddrc(050) = &B00000100
Data_portd(050) = &B00000010
Data_portc(050) = &B00000000
Data_ddrd(051) = &B00100000
Data_ddrc(051) = &B10000000
Data_portd(051) = &B00000000
Data_portc(051) = &B10000000
Data_ddrd(052) = &B00010000
Data_ddrc(052) = &B10000000
Data_portd(052) = &B00000000
Data_portc(052) = &B10000000
Data_ddrd(053) = &B00001000
Data_ddrc(053) = &B10000000
Data_portd(053) = &B00000000
Data_portc(053) = &B10000000
Data_ddrd(054) = &B00000100
Data_ddrc(054) = &B10000000
Data_portd(054) = &B00000000
Data_portc(054) = &B10000000
Data_ddrd(055) = &B00000010
Data_ddrc(055) = &B10000000
Data_portd(055) = &B00000000
Data_portc(055) = &B10000000
Data_ddrd(056) = &B00000000
Data_ddrc(056) = &B11000000
Data_portd(056) = &B00000000
Data_portc(056) = &B10000000
Data_ddrd(057) = &B00000000
Data_ddrc(057) = &B10100000
Data_portd(057) = &B00000000
Data_portc(057) = &B10000000
Data_ddrd(058) = &B00000000
Data_ddrc(058) = &B10010000
Data_portd(058) = &B00000000
Data_portc(058) = &B10000000
Data_ddrd(059) = &B00000000
Data_ddrc(059) = &B10001000
Data_portd(059) = &B00000000
Data_portc(059) = &B10000000
Data_ddrd(060) = &B00000000
Data_ddrc(060) = &B10000100
Data_portd(060) = &B00000000
Data_portc(060) = &B10000000
Data_ddrd(061) = &B00100000
Data_ddrc(061) = &B01000000
Data_portd(061) = &B00000000
Data_portc(061) = &B01000000
Data_ddrd(062) = &B00010000
Data_ddrc(062) = &B01000000
Data_portd(062) = &B00000000
Data_portc(062) = &B01000000
Data_ddrd(063) = &B00001000
Data_ddrc(063) = &B01000000
Data_portd(063) = &B00000000
Data_portc(063) = &B01000000
Data_ddrd(064) = &B00000100
Data_ddrc(064) = &B01000000
Data_portd(064) = &B00000000
Data_portc(064) = &B01000000
Data_ddrd(065) = &B00000010
Data_ddrc(065) = &B01000000
Data_portd(065) = &B00000000
Data_portc(065) = &B01000000
Data_ddrd(066) = &B00000000
Data_ddrc(066) = &B11000000
Data_portd(066) = &B00000000
Data_portc(066) = &B01000000
Data_ddrd(067) = &B00000000
Data_ddrc(067) = &B01100000
Data_portd(067) = &B00000000
Data_portc(067) = &B01000000
Data_ddrd(068) = &B00000000
Data_ddrc(068) = &B01010000
Data_portd(068) = &B00000000
Data_portc(068) = &B01000000
Data_ddrd(069) = &B00000000
Data_ddrc(069) = &B01001000
Data_portd(069) = &B00000000
Data_portc(069) = &B01000000
Data_ddrd(070) = &B00000000
Data_ddrc(070) = &B01000100
Data_portd(070) = &B00000000
Data_portc(070) = &B01000000
Data_ddrd(071) = &B00100000
Data_ddrc(071) = &B00100000
Data_portd(071) = &B00000000
Data_portc(071) = &B00100000
Data_ddrd(072) = &B00010000
Data_ddrc(072) = &B00100000
Data_portd(072) = &B00000000
Data_portc(072) = &B00100000
Data_ddrd(073) = &B00001000
Data_ddrc(073) = &B00100000
Data_portd(073) = &B00000000
Data_portc(073) = &B00100000
Data_ddrd(074) = &B00000100
Data_ddrc(074) = &B00100000
Data_portd(074) = &B00000000
Data_portc(074) = &B00100000
Data_ddrd(075) = &B00000010
Data_ddrc(075) = &B00100000
Data_portd(075) = &B00000000
Data_portc(075) = &B00100000
Data_ddrd(076) = &B00000000
Data_ddrc(076) = &B10100000
Data_portd(076) = &B00000000
Data_portc(076) = &B00100000
Data_ddrd(077) = &B00000000
Data_ddrc(077) = &B01100000
Data_portd(077) = &B00000000
Data_portc(077) = &B00100000
Data_ddrd(078) = &B00000000
Data_ddrc(078) = &B00110000
Data_portd(078) = &B00000000
Data_portc(078) = &B00100000
Data_ddrd(079) = &B00000000
Data_ddrc(079) = &B00101000
Data_portd(079) = &B00000000
Data_portc(079) = &B00100000
Data_ddrd(080) = &B00000000
Data_ddrc(080) = &B00100100
Data_portd(080) = &B00000000
Data_portc(080) = &B00100000
Data_ddrd(081) = &B00100000
Data_ddrc(081) = &B00010000
Data_portd(081) = &B00000000
Data_portc(081) = &B00010000
Data_ddrd(082) = &B00010000
Data_ddrc(082) = &B00010000
Data_portd(082) = &B00000000
Data_portc(082) = &B00010000
Data_ddrd(083) = &B00001000
Data_ddrc(083) = &B00010000
Data_portd(083) = &B00000000
Data_portc(083) = &B00010000
Data_ddrd(084) = &B00000100
Data_ddrc(084) = &B00010000
Data_portd(084) = &B00000000
Data_portc(084) = &B00010000
Data_ddrd(085) = &B00000010
Data_ddrc(085) = &B00010000
Data_portd(085) = &B00000000
Data_portc(085) = &B00010000
Data_ddrd(086) = &B00000000
Data_ddrc(086) = &B10010000
Data_portd(086) = &B00000000
Data_portc(086) = &B00010000
Data_ddrd(087) = &B00000000
Data_ddrc(087) = &B01010000
Data_portd(087) = &B00000000
Data_portc(087) = &B00010000
Data_ddrd(088) = &B00000000
Data_ddrc(088) = &B00110000
Data_portd(088) = &B00000000
Data_portc(088) = &B00010000
Data_ddrd(089) = &B00000000
Data_ddrc(089) = &B00011000
Data_portd(089) = &B00000000
Data_portc(089) = &B00010000
Data_ddrd(090) = &B00000000
Data_ddrc(090) = &B00010100
Data_portd(090) = &B00000000
Data_portc(090) = &B00010000
Data_ddrd(091) = &B00100000
Data_ddrc(091) = &B00001000
Data_portd(091) = &B00000000
Data_portc(091) = &B00001000
Data_ddrd(092) = &B00010000
Data_ddrc(092) = &B00001000
Data_portd(092) = &B00000000
Data_portc(092) = &B00001000
Data_ddrd(093) = &B00001000
Data_ddrc(093) = &B00001000
Data_portd(093) = &B00000000
Data_portc(093) = &B00001000
Data_ddrd(094) = &B00000100
Data_ddrc(094) = &B00001000
Data_portd(094) = &B00000000
Data_portc(094) = &B00001000
Data_ddrd(095) = &B00000010
Data_ddrc(095) = &B00001000
Data_portd(095) = &B00000000
Data_portc(095) = &B00001000
Data_ddrd(096) = &B00000000
Data_ddrc(096) = &B10001000
Data_portd(096) = &B00000000
Data_portc(096) = &B00001000
Data_ddrd(097) = &B00000000
Data_ddrc(097) = &B01001000
Data_portd(097) = &B00000000
Data_portc(097) = &B00001000
Data_ddrd(098) = &B00000000
Data_ddrc(098) = &B00101000
Data_portd(098) = &B00000000
Data_portc(098) = &B00001000
Data_ddrd(099) = &B00000000
Data_ddrc(099) = &B00011000
Data_portd(099) = &B00000000
Data_portc(099) = &B00001000
Data_ddrd(100) = &B00000000
Data_ddrc(100) = &B00001100
Data_portd(100) = &B00000000
Data_portc(100) = &B00001000
End Sub