th3r1pp3r
20.03.2013, 10:32
Hallo!
Ich möchte gern mein array durch eine for schleife ansprechen und will dies durch eine variable im array machen.
Ich bin ein Basic neuling und weiß nicht wie ich dieses problem in basic lösen kann.
Vielen Dank für eure Hilfe.
Hier mein Programmcode:
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
Config Porta = Output
Config Portc = Output
Config Portd = Output
Const Ari = 3
Dim Ebene(3) As Byte
Dim Spalte(3) As Byte
Dim Zeile(ari) As Byte
Ebene1 Alias Pinc.0 'Port PC.0 als oberste Ebene deklarieren (Schalten von FET's)
Ebene2 Alias Pinc.1 'Port PC.1 als mittlere Ebene deklarieren (Schalten von FET's)
Ebene3 Alias Pinc.2 'Port PC.2 als unterste Ebene deklarieren (Schalten von FET's)
Spalte1 Alias Pind.0 'Port PD.0 zum Schalten der kompletten Spalte 1 (LED 1,2,3)
Spalte2 Alias Pind.1 'Port PD.1 zum Schalten der kompletten Spalte 2 (LED 4,5,6)
Spalte3 Alias Pind.2 'Port PD.2 zum Schalten der kompletten Spalte 3 (LED 7,8,9)
Zeile1 Alias Pina.0 'Port PA.0 zum Schalten der IC'S(IC8) zur Ansteuerung einzelner LED'S (Zeile_1 & Spalte_1 = LED1=AN)
Zeile2 Alias Pina.2 'Port PA.2 zum Schalten der IC'S(IC4) zur Ansteuerung einzelner LED'S (Zeile_2 & Spalte_1 = LED4=AN)
Zeile3 Alias Pina.1 'Port PA.1 zum Schalten der IC'S(IC3) zur Ansteuerung einzelner LED'S (Zeile_3 & Spalte_1 = LED7=AN)
Dim Letzteebene As Integer
Dim Zaehler As Integer
Dim Ebenenauswahl As Integer
Dim Arsz As Integer
Dim Ar As Byte
Ebene(1) = Ebene1
Ebene(2) = Ebene2
Ebene(3) = Ebene3
Spalte(1) = Spalte1
Spalte(2) = Spalte2
Spalte(3) = Spalte3
Zeile(1) = Zeile1
Zeile(2) = Zeile2
Zeile(3) = Zeile3
Letzteebene = 0
Zaehler = 0
Ebenenauswahl = 1
Do
Ar = 0
If Ebenenauswahl = 1 Then
Ebene(1) = 1
For Arsz = 1 To 3
Ar = Ar + 1
Zeile(ari) = 1
Spalte(1) = 1
If Zeile(3) = 1 Then
Arsz = 1
Spalte(1) = 0
Spalte(2) = 1
Letzteebene = 1
End If
If Letzteebene = 1 Then
Arsz = 1
Spalte(2) = 0
Spalte(3) = 1
Letzteebene = 0
End If
Next
End If
Ar = 1
Ebenenauswahl = Ebenenauswahl + 1
If Ebenenauswahl = 2 Then
Ebene(2) = 1
For Arsz = 1 To 3
Zeile(ari) = 1
Spalte(1) = 1
Ar = Ar + 1
If Zeile(3) = 1 Then
Arsz = 1
Spalte(1) = 0
Spalte(2) = 1
Letzteebene = 1
End If
If Letzteebene = 1 Then
Arsz = 1
Spalte(2) = 0
Spalte(3) = 1
Letzteebene = 0
End If
Next
End If
Arsz = 1
Ebenenauswahl = Ebenenauswahl + 1
If Ebenenauswahl = 3 Then
Ebene(3) = 1
For Arsz = 1 To 3
Zeile(ari) = 1
Spalte(1) = 1
Ar = Ar + 1
If Zeile(3) = 1 Then
Arsz = 1
Spalte(1) = 0
Spalte(2) = 1
Letzteebene = 1
End If
If Letzteebene = 1 Then
Arsz = 1
Spalte(2) = 0
Spalte(3) = 1
Letzteebene = 0
End If
Next
End If
Arsz = 1
Ebenenauswahl = 1
Loop
End 'end program
Ich möchte gern mein array durch eine for schleife ansprechen und will dies durch eine variable im array machen.
Ich bin ein Basic neuling und weiß nicht wie ich dieses problem in basic lösen kann.
Vielen Dank für eure Hilfe.
Hier mein Programmcode:
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
Config Porta = Output
Config Portc = Output
Config Portd = Output
Const Ari = 3
Dim Ebene(3) As Byte
Dim Spalte(3) As Byte
Dim Zeile(ari) As Byte
Ebene1 Alias Pinc.0 'Port PC.0 als oberste Ebene deklarieren (Schalten von FET's)
Ebene2 Alias Pinc.1 'Port PC.1 als mittlere Ebene deklarieren (Schalten von FET's)
Ebene3 Alias Pinc.2 'Port PC.2 als unterste Ebene deklarieren (Schalten von FET's)
Spalte1 Alias Pind.0 'Port PD.0 zum Schalten der kompletten Spalte 1 (LED 1,2,3)
Spalte2 Alias Pind.1 'Port PD.1 zum Schalten der kompletten Spalte 2 (LED 4,5,6)
Spalte3 Alias Pind.2 'Port PD.2 zum Schalten der kompletten Spalte 3 (LED 7,8,9)
Zeile1 Alias Pina.0 'Port PA.0 zum Schalten der IC'S(IC8) zur Ansteuerung einzelner LED'S (Zeile_1 & Spalte_1 = LED1=AN)
Zeile2 Alias Pina.2 'Port PA.2 zum Schalten der IC'S(IC4) zur Ansteuerung einzelner LED'S (Zeile_2 & Spalte_1 = LED4=AN)
Zeile3 Alias Pina.1 'Port PA.1 zum Schalten der IC'S(IC3) zur Ansteuerung einzelner LED'S (Zeile_3 & Spalte_1 = LED7=AN)
Dim Letzteebene As Integer
Dim Zaehler As Integer
Dim Ebenenauswahl As Integer
Dim Arsz As Integer
Dim Ar As Byte
Ebene(1) = Ebene1
Ebene(2) = Ebene2
Ebene(3) = Ebene3
Spalte(1) = Spalte1
Spalte(2) = Spalte2
Spalte(3) = Spalte3
Zeile(1) = Zeile1
Zeile(2) = Zeile2
Zeile(3) = Zeile3
Letzteebene = 0
Zaehler = 0
Ebenenauswahl = 1
Do
Ar = 0
If Ebenenauswahl = 1 Then
Ebene(1) = 1
For Arsz = 1 To 3
Ar = Ar + 1
Zeile(ari) = 1
Spalte(1) = 1
If Zeile(3) = 1 Then
Arsz = 1
Spalte(1) = 0
Spalte(2) = 1
Letzteebene = 1
End If
If Letzteebene = 1 Then
Arsz = 1
Spalte(2) = 0
Spalte(3) = 1
Letzteebene = 0
End If
Next
End If
Ar = 1
Ebenenauswahl = Ebenenauswahl + 1
If Ebenenauswahl = 2 Then
Ebene(2) = 1
For Arsz = 1 To 3
Zeile(ari) = 1
Spalte(1) = 1
Ar = Ar + 1
If Zeile(3) = 1 Then
Arsz = 1
Spalte(1) = 0
Spalte(2) = 1
Letzteebene = 1
End If
If Letzteebene = 1 Then
Arsz = 1
Spalte(2) = 0
Spalte(3) = 1
Letzteebene = 0
End If
Next
End If
Arsz = 1
Ebenenauswahl = Ebenenauswahl + 1
If Ebenenauswahl = 3 Then
Ebene(3) = 1
For Arsz = 1 To 3
Zeile(ari) = 1
Spalte(1) = 1
Ar = Ar + 1
If Zeile(3) = 1 Then
Arsz = 1
Spalte(1) = 0
Spalte(2) = 1
Letzteebene = 1
End If
If Letzteebene = 1 Then
Arsz = 1
Spalte(2) = 0
Spalte(3) = 1
Letzteebene = 0
End If
Next
End If
Arsz = 1
Ebenenauswahl = 1
Loop
End 'end program