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