- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 10

Thema: Eine Byte Variable aufteilen in einzelne 8 Bits

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Benutzer Stammmitglied
    Registriert seit
    17.10.2009
    Beiträge
    62
    Also, ich habe jetzt mein Programm geschrieben. Es ist zur Ansteuerung einer LED-Matrix.
    Ich würde mich sehr freuen, wenn ihr mal drüberschauen könntet.
    Es gibt ein paar Errors, die ich mir nicht erklären kann.

    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Config Portb = Output
    Config Portd = Output
    
    Spalte Alias Portd
    Zeile Alias Portb
    
    Declare Sub Leer()
    Declare Sub Zeichnen()
    
    Dim Bild1 As Byte
    Dim Bild2 As Byte
    Dim Bild3 As Byte
    Dim Bild4 As Byte
    Dim Bild5 As Byte
    Dim Bild6 As Byte
    Dim Bild7 As Byte
    Dim Bild8 As Byte
    Dim Led1 As Bit
    Dim Led2 As Bit
    Dim Led3 As Bit
    Dim Led4 As Bit
    Dim Led5 As Bit
    Dim Led6 As Bit
    Dim Led7 As Bit
    Dim Led8 As Bit
    
    Dim Zeit As Integer
    
    Do
    
      Select Case Zeit
    
       Case 640 :                                               'Bild1
    
          Bild1 = Bits(0 , 7)                                   'Im ersten Schritt wird das Bild gesetzt
          Bild2 = Bits(1 , 7)
          Bild3 = Bits(2 , 7)
          Bild4 = Bits(3 , 7)
          Bild5 = Bits(4 , 7)
          Bild6 = Bits(5 , 7)
          Bild7 = Bits(6 , 7)
          Bild8 = Bits(7)
    
    
          Call Zeichnen()                                       'Das bild Zeichnen
          Call Leer()                                           'Und die Bildfäche wieder leeren
    
       Case 1280 :                                              'Bild2
    
          Call Zeichnen()
          Call Leer()
    
       Case 1920 :                                              'Bild3
    
          Call Zeichnen()
          Call Leer()
    
       Case 2560 :                                              'Bild4
    
          Call Zeichnen()
          Call Leer()
    
       Case 3200 :                                              'Bild5
    
          Call Zeichnen()
          Call Leer()
    
       Case 3840 :                                              'Bild6
    
          Call Zeichnen()
          Call Leer()
    
       Case 4480 :                                              'Bild7
    
          Call Zeichnen()
          Call Leer()
    
       Case 5120 :                                              'Bild8
    
          Call Zeichnen()
          Call Leer()
    
       Case 5760 :                                              'Bild9
    
          Call Zeichnen()
          Call Leer()
    
       Case 6400 :                                              'Bild10
    
          Call Zeichnen()
          Call Leer()
    
       Case 7040 :                                              'Bild11
    
          Call Zeichnen()
          Call Leer()
    
       Case 7680 :                                              'Bild12
    
          Call Zeichnen()
          Call Leer()
    
       Case 8320 :                                              'Bild13
    
          Call Zeichnen()
          Call Leer()
    
       Case 8960 :                                              'Bild14
    
          Call Zeichnen()
          Call Leer()
    
       Case 9600 :                                              'Bild15
    
          Call Zeichnen()
          Call Leer()
    
       Case 10240 :                                             'Bild16
    
          Call Zeichnen()
          Call Leer()
    
       Case 10880 :                                             'Bild17
    
          Call Zeichnen()
          Call Leer()
    
       Case 11520 :                                             'Bild18
    
          Call Zeichnen()
          Call Leer()
    
       Case 12160 :                                             'Bild19
    
          Call Zeichnen()
          Call Leer()
    
       Case 12800 :                                             'Bild20
    
          Call Zeichnen()
          Call Leer()
    
       Case 13440 :                                             'Bild21
    
          Call Zeichnen()
          Call Leer()
    
       Case 14080 :                                             'Bild22
    
          Call Zeichnen()
          Call Leer()
    
       Case 14720 :                                             'Bild23
    
          Call Zeichnen()
          Call Leer()
    
       Case 15360 :                                             'Bild24
    
          Call Zeichnen()
          Call Leer()
    
       Case 16000 :                                             'Bild25
    
          Call Zeichnen()
          Call Leer()                                           'bis hier sollte eine Sekunde vergangen sein, da: Nach jeder gesetzten LED macht er 10 mikrosekunden pause. (64 * 10)*25
    
       Zeit = 0
    
      End Select
    
      Zeit = Zeit + 1
    
    Loop
    
    '&B10000000 = &H80
    '&B01000000 = &H40
    '&B00100000 = &H20
    '&B00010000 = &H10
    '&B00001000 = &H8
    '&B00000100 = &H4
    '&B00000010 = &H2
    '&B00000001 = &H1
    
    
    Sub Zeichnen()
    
       Dim I As Integer
    
       'Zeile
       Led1 = Bild1.0
       Led2 = Bild2.1
       Led3 = Bild3.2
       Led4 = Bild4.3
       Led5 = Bild5.4
       Led6 = Bild6.5
       Led7 = Bild7.6
       Led8 = Bild8.7
    
       Zeile.1 = 1
    
       Spalte.0 = Led1
       Waitus 625
       Reset Spalte.0
    
       Spalte.1 = Led2
       Waitus 625
       Reset Spalte.1
    
       Spalte.2 = Led3
       Waitus 625
       Reset Spalte.2
    
       Spalte.3 = Led4
       Waitus 625
       Reset Spalte.3
    
       Spalte.4 = Led5
       Waitus 625
       Reset Spalte.4
    
       Spalte.5 = Led6
       Waitus 625
       Reset Spalte.5
    
       Spalte.6 = Led7
       Waitus 625
       Reset Spalte.5
    
       Spalte.7 = Led8
       Waitus 625
       Reset Spalte.7
    
    
    End Sub
    
    Sub Leer()
    
       Reset Bild1
       Reset Bild2
       Reset Bild3
       Reset Bild4
       Reset Bild5
       Reset Bild6
       Reset Bild7
       Reset Bild8
    
    
    End Sub
                                                                 'end program
    Die Errors sind diese:

    Klicke auf die Grafik für eine größere Ansicht

Name:	1DxvH.png
Hits:	42
Größe:	4,3 KB
ID:	24077


    Error Nr. 1 ist hier:
    Code:
    Bild(0) = Bits(0 , 7)
    Error Nr. 2 ist hier:
    Code:
    Led(i) = Bild(i).i
    Error Nr. 3 hat keinen Bezug

    Gruß nxtman

    Edit:

    Error Nr. 2 Hat sich erledigt. Codestelle falsch!

    Edit 2:

    Errors haben sich komplett erledigt. Code aktualisiert. Funktioniert aber trozdem nicht...
    Geändert von NXTman (21.12.2012 um 15:30 Uhr)
    Meine Website: http://nxtman.net/

Ä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
  •  

Solar Speicher und Akkus Tests