- LiFePO4 Speicher Test         
Ergebnis 1 bis 7 von 7

Thema: Variable im Array

  1. #1

    Variable im Array

    Anzeige

    Powerstation Test
    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:

    Code:
    $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
    Geändert von th3r1pp3r (21.03.2013 um 06:59 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von th3r1pp3r Beitrag anzeigen
    Ich möchte gern mein array durch eine for schleife ansprechen und will dies durch eine variable im array machen.
    Folgendes kleine Programm füllt das array "A" mit den Zahlen 1 bis 10 durch die Laufvariable "i"

    Code:
    'IDE: Bascom Demo Version 2.0.7.5
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 34
    $crystal = 16000000
    
    Dim A(10) As Byte
    Dim i As Byte
    
    For i = 1 To 10
      A(i) = i
    Next
    
    End
    Wenn Du vor Deinem Code [ CODE] und nach Deinem Code [ /CODE], also die Code Tags benutzt (ohne die Leerzeichen nach der nach rechts geöffneten eckigen Klammer), wird es angenehmer zu lesen und Einrückungen bleiben erhalten. In der "Erweitert" oder "Vorschau" bei Threaderstellung oder Antwort kann man dafür das Nummernzeichen "#" verwenden, daß dann erreichbar wird

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Leider scheint dies nicht zu funktionieren, da Basecom A(i) als eine variable sieht und mir nie die variable i in der for-schleife hochzählt

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,
    dann müstest Du genauer erklären, was Du haben möchtest.

    In meinem Beispiel ist A ein Array mit 10 Elementen. i wird durch das For-Next erhöht und indiziert mit A(i) bei jedem Schleifendurchlauf ein Element in A. Welche Bascom Version verwendest Du?

    Gibt es Fehlermeldungen bei Dir oder enthalten die 10 Elemente des Arrays nicht die Nummern 1 bis 10?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Guten Morgen Searcher,
    ich benutze die Bascom Version 2.0.7.5 . Ich möchte bei jedem Durchgang der For-Next schleife meine variable ari in Zeile(ari) erhöhen um die nächste Zeile mit meiner Led's anzuschalten.

    Vielen Dank für deine bemühungen

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Sorry, vielleicht hab ich nur ein Brett vorm Kopf und verstehe Dein Programm nicht. Helfen Dir zwei ineinander verschachtelte Scheifen. Nicht getestet:
    Code:
    'IDE: Bascom Demo Version 2.0.7.5
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 34
    $crystal = 16000000
    
    Dim A(10) As Byte
    Dim B(10) As Byte
    Dim i As Byte
    Dim k As Byte
    
    For k = 1 to 10
       B(k) = k
       For i = 1 To 10
         A(i) = i
       Next i
    Next k
    
    End
    Hier wird B(1) auf 1 gesetzt. Danach werden wieder alle Elemente von A mit Zahlen von 1 bis 10 gefüllt
    Dann wird B(2) auf 2 gesetzt. Danach werden die Elemente von A NEU mit den Zahlen von 1 bis 10 gefüllt
    Dann (B3) .. usw.

    Falls das nicht hilft: Warum nicht?



    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  7. #7
    Ahhh jetzt funktioniert es! Vielen Dank!
    Mir hat der ausdruck Zeile(ar) = ar gefehlt.
    Nun zählt er die Zeilen nach der reihe hoch wie gewünscht.

    Vielen Dank nochmal

Ähnliche Themen

  1. Problem mit gets(array-variable) in C
    Von pete1612 im Forum Software, Algorithmen und KI
    Antworten: 5
    Letzter Beitrag: 10.04.2012, 22:07
  2. Array als variable an Funktion
    Von demmy im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 11.03.2012, 23:31
  3. Array auf zweidimensionale Array
    Von semicolon im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 25.05.2007, 13:48
  4. Variable (Array hochzählen - Wie?
    Von RogerMS im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 30.01.2007, 12:55
  5. Bytes aus einem Array in eine Word-Variable
    Von Larek im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 14
    Letzter Beitrag: 26.08.2006, 18:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen