- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 10

Thema: Eine Byte Variable aufteilen in einzelne 8 Bits

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Funktioniert aber trozdem nicht...
    Was nicht?

    Wollte gerade auf die Fehler eingehen:
    Defaultmäßig beginnt der Index bei Arrays in Bascom mit 1. Kann man anpassen mit "CONFIG BASE". Deshalb ging
    "Bild(0) = ..." nicht. Mit config base = 0 wär es gegangen. Indexe dann von 0 bis 7.

    Led(i) = ... ging nicht, weil Led nicht als array definiert war. Allerdings kann man Bitarrays wohl nicht einrichten.
    Man könnte DIM LED AS BYTE und dann LED.i = BILD(i).i machen.

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

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Hallo NXTman,
    ich will dir ja nicht den Spaß nehmen, aber das, was du hier versuchst, ist ziemlich aussichtslos.
    Entsprechend deiner Rechnung im anderen Thread gehe ich davon aus, dass du 64 LEDs eine nach der anderen einschalten willst. D.h. du hast nur eine Einschaltzeit von 1/64, wenn alles ohne Verzögerung läuft, was in deinem Programm aber eh nicht der Fall ist.
    Versuche mal eine einzelne LED 10ms an- und danach 640 ms auszuschalten. Dann hast du eine Vorstellung von der zu erwartenden Helligkeit.
    Weiterhin musst du dich unbedingt mit Timern beschäftigen, wenn du etwas sinnvolles hinbekommen möchtest.
    Es ist effektiver, wenn du immer 8 LEDs, die möglichst an einem Port hängen, gleichzeitig einschaltest. Über den anderen Port entscheidest du dann, welche LED Reihe gemeint ist.
    Hier im Forum gibt es auch schon eine Menge Beispiele, wie man eine Matrix im Multiplexverfahren schaltet.

    Ich halte es daher nicht für lohnend, dir zu helfen, deinen jetzigen Ansatz lauffähig zu machen.

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ich halte es daher nicht für lohnend, dir zu helfen, deinen jetzigen Ansatz lauffähig zu machen.
    So ähnlich schätze ich das auch ein.

    Ist das ein Zufall:
    https://www.roboternetz.de/community...ent-ansteuern?

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    17.10.2009
    Beiträge
    62
    Ja Radbruch ich bin der selbe, nur irgendwie versteh ichs selber nicht, egal..
    Ich habe den alten code aus reinem Zufall(!) wieder gefunden, weil ich sehr ausgiebig im Forum nach ledmatrix gesucht habe gefunden.
    Also das Thema, das radbruch genannt hat.

    Ich habe den Code auf meine aktuelle Matrix angepasst und noch ein bisschen "optimiert".
    So sieht er aus:

    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Config Portb = Output
    Config Portd = Output
    
    'Spalte Alias Portd
    'Zeile  Alias Portb
    
    Declare Sub Zeilensetzen
    
    Dim Bildspeicher(8) As Byte , Spalte As Byte , Temp As Byte
    
    Bildspeicher(1) = Bits(0 , 1 , 2 , 3 , 4 , 5 , 6 , 7)
    Bildspeicher(2) = Bits(0 , 1 , 7)
    Bildspeicher(3) = Bits(0 , 2 , 7)
    Bildspeicher(4) = Bits(0 , 3 , 7)
    Bildspeicher(5) = Bits(0 , 4 , 7)
    Bildspeicher(6) = Bits(0 , 5 , 7)
    Bildspeicher(7) = Bits(0 , 6 , 7)
    Bildspeicher(8) = Bits(0 , 1 , 2 , 3 , 4 , 5 , 6 , 7)
    
    Spalte = 1
    
    Do
       Select Case Spalte
          Case 1 : Reset Portd.7
                   Zeilensetzen
                   Set Portd.0
    
          Case 2 : Reset Portd.0
                   Zeilensetzen
                   Set Portd.1
    
          Case 3 : Reset Portd.1
                   Zeilensetzen
                   Set Portd.2
    
          Case 4 : Reset Portd.2
                   Zeilensetzen
                   Set Portd.3
    
          Case 5 : Reset Portd.3
                   Zeilensetzen
                   Set Portd.4
    
          Case 6 : Reset Portd.4
                   Zeilensetzen
                   Set Portd.5
    
          Case 7 : Reset Portd.5
                   Zeilensetzen
                   Set Portd.6
    
          Case 8 : Reset Portd.6
                   Zeilensetzen
                   Set Portd.7
       End Select
    
       If Spalte <= 8 Then Spalte = Spalte + 1 Else Spalte = 1
    
       Waitus 500
    
       'hier kann man dann das Bild zusammenbasteln
    
    Loop
    
    End
    
    Sub Zeilensetzen
       Portb = Bildspeicher(spalte) And 255
    End Sub
    Zeigt genau das, was sie zeigen soll.

    Gruß nxtman

    #####Edit####

    Frage: Kann ich in Bascom eine Schleife machen, die ungefähr eine Sekunde läuft?
    Geändert von NXTman (21.12.2012 um 17:36 Uhr)
    Meine Website: http://nxtman.net/

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Zitat Zitat von NXTman Beitrag anzeigen
    Frage: Kann ich in Bascom eine Schleife machen, die ungefähr eine Sekunde läuft?
    Wait 1 erzeugt eine Schleife, die etwa eine Sekunde läuft und nichts tut.
    Grüße
    Thomas

Ähnliche Themen

  1. 3 String Werte in eine Byte-Variable bekommen.....
    Von mull im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 13.03.2008, 11:23
  2. Wertebereich in eine Byte- Variable legen
    Von Muddel im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 11.07.2006, 21:50
  3. Eine Variable in einem Bereich in ein Byte schreiben/lesen
    Von Kaiser-F im Forum C - Programmierung (GCC u.a.)
    Antworten: 19
    Letzter Beitrag: 22.06.2006, 11:39
  4. einzelne Bits in Byte-Variablen aendern
    Von feldmueller im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 02.05.2006, 17:31
  5. Auf einzelne Bits in einem Byte zugreifen?
    Von MarkusLudwig im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 25.02.2006, 18:21

Berechtigungen

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

LiFePO4 Speicher Test