Hi, danke für die schnelle Antwort,
der Code:
Code:
$regfile = "m16def.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 16
$framesize = 32
Config Porta = Output
Config Portb = Output
Config Portc = Output
Config Portd = Output
Declare Sub Zeilensetzen
Declare Sub Set_pixel(byval X As Byte , Byval Y As Byte) ' Nullpunkt ist oben links als 0,0
Declare Sub Reset_pixel(byval X As Byte , Byval Y As Byte)
Dim X As Byte , Y As Byte
Dim Bildspeicher(11) As Word , Spalte As Byte , Temp As Word , Zaehler As Word
Spalte = 1
Do
Select Case Spalte
Case 1 : Reset Portb.5
Zeilensetzen
Set Portb.4
Case 2 : Reset Portb.4
Zeilensetzen
Set Portb.3
Case 3 : Reset Portb.3
Zeilensetzen
Set Portb.2
Case 4 : Reset Portb.2
Zeilensetzen
Set Portb.1
Case 5 : Reset Portb.1
Zeilensetzen
Set Portb.0
Case 6 : Reset Portb.0
Zeilensetzen
Set Porta.7
Case 7 : Reset Porta.7
Zeilensetzen
Set Porta.6
Case 8 : Reset Porta.6
Zeilensetzen
Set Porta.5
Case 9 : Reset Porta.5
Zeilensetzen
Set Portb.5
End Select
If Spalte < 9 Then Spalte = Spalte + 1 Else Spalte = 1
Waitus 100
Select Case Zaehler
Case 1000 : For X = 0 To 8 ' diagonale
Set_pixel X , X
Next X
Case 2000 : For X = 0 To 10 ' waagrecht
Set_pixel X , 0
Set_pixel X , 8
Next X
Case 3000 : For Y = 0 To 8 ' senkrecht
Set_pixel 0 , Y
Set_pixel 10 , Y
Next X
Case 4000 : For X = 1 To 11 ' alle an
Bildspeicher(x) = &B11111111111
Next X
Case 5000 : For X = 1 To 9 ' Bitmuster
Bildspeicher(x) = &B11111111100
Next X
Case 6000 : For X = 1 To 9 ' alle aus
Bildspeicher(x) = 0
Next X
Zaehler = 0
End Select
Zaehler = Zaehler + 1
Loop
End
Sub Set_pixel(byval X As Byte , Byval Y As Byte)
Bildspeicher(x + 1).y = 1 ' Bascom startet Arrays mit 1
End Sub
Sub Reset_pixel(byval X As Byte , Byval Y As Byte)
Bildspeicher(x + 1).y = 0
End Sub
Sub Zeilensetzen
Temp = Bildspeicher(spalte)
If Temp.1 = 1 Then Set Portd.2 Else Reset Portd.2
If Temp.2 = 1 Then Set Portd.1 Else Reset Portd.1
If Temp.3 = 1 Then Set Portd.0 Else Reset Portd.0
If Temp.4 = 1 Then Set Portc.7 Else Reset Portc.7
If Temp.5 = 1 Then Set Portc.6 Else Reset Portc.6
If Temp.6 = 1 Then Set Portc.5 Else Reset Portc.5
If Temp.7 = 1 Then Set Portc.4 Else Reset Portc.4
If Temp.8 = 1 Then Set Portc.3 Else Reset Portc.3
If Temp.9 = 1 Then Set Portc.2 Else Reset Portc.2
If Temp.10 = 1 Then Set Portc.1 Else Reset Portc.1
If Temp.11 = 1 Then Set Portc.0 Else Reset Portc.0
End Sub
Ich habe es zig mal überprüft, alle Zeilen und Spalten belegungen stimmen
Lesezeichen