- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 26

Thema: LED Matrix möglichst effizient ansteuern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.10.2011
    Beiträge
    26
    danke, dass du mir jetzt schon (fast) den ganzen Code zusammen "gebastelt" hast. Meiner sieht jetzt so aus:

    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 Portc.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.2
                   Zeilensetzen
                   Set Portd.3
    
          Case 6 : Reset Portd.2
                   Zeilensetzen
                   Set Portd.3
    
          Case 7 : Reset Portd.2
                   Zeilensetzen
                   Set Portd.3
    
          Case 8 : Reset Portd.2
                   Zeilensetzen
                   Set Portd.3
    
          Case 9 : Reset Portd.7
                   Zeilensetzen
                   Set Portc.7
       End Select
    
       If Spalte < 9 Then Spalte = Spalte + 1 Else Spalte = 1
    
    
       Waitus 100
    
    
       Select Case Zaehler
          Case 10000 : For X = 0 To 8       ' diagonale
                         Set_pixel X , X
                       Next X
    
          Case 20000 : For X = 0 To 10      ' waagrecht
                         Set_pixel X , 0
                         Set_pixel X , 8
                       Next X
    
          Case 30000 : For Y = 0 To 8       ' senkrecht
                         Set_pixel 0 , Y
                         Set_pixel 10 , Y
                       Next X
    
          Case 40000 : For X = 1 To 9       ' alle an
                         Bildspeicher(x) = 255
                       Next X
    
          Case 50000 : For X = 1 To 9       ' Bitmuster
                         Bildspeicher(x) = &B10101010101
                       Next X
    
          Case 60000 : 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
    
    'Wenn die Pins aufeinanderfolgen ist es deutlich schlanker:
    'Sub Zeilensetzen
       'Porta = Bildspeicher(spalte) And 255
       'Portb = Bildspeicher(spalte) / 255 And 7
    'End Sub

    aber es gibt immer noch keine Reaktion auf der Matrix. Sollte ich die Platine von der Matrix vlt. nochmal neu machen und diesmal mit Schieberegistern?

    gruß nxtman95

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Code:
          Case 3 : Reset Portd.1
                   Zeilensetzen
                   Set Portd.2
    
          Case 4 : Reset Portd.2
                   Zeilensetzen
                   Set Portd.3
    
          Case 5 : Reset Portd.2
                   Zeilensetzen
                   Set Portd.3
    So einfach gehts ja nicht. Du musst schon deine eigenen Pins einsetzen.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    11.10.2011
    Beiträge
    26
    Och man binn ich doof!
    Das hab ich völlig vergessen xD
    Danke für den Tipp, sonst wär ich wahrscheinlich nie drauf gekommen...

    Aber jetzt, wenn das Muster "alle an" da ist, ist nur die hälfte der Leds angeschaltet...

    Edit: Die Zeilen 5,6,7,8,9 und 11 gehen nicht komischerweise... alles ist gut verlötet, also kein kurzer und in der software kann ich auch keinen Fehler entdecken...

    Gruß nxtman95
    Geändert von nxtman95 (23.10.2011 um 00:26 Uhr)

Ähnliche Themen

  1. Möglichst kleiner, möglichst schneller Linux-PC gesucht
    Von bjoerng im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 11
    Letzter Beitrag: 22.06.2010, 21:56
  2. Eine LED-Matrix 5x7 ansteuern
    Von Tryan im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 66
    Letzter Beitrag: 01.03.2009, 18:42
  3. 10V aus 3,3 - möglichst ohne IC?
    Von Zachso im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 16.02.2008, 12:28
  4. LED-Matrix, wie Ansteuern?
    Von tholan im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 27.04.2006, 19:24
  5. Geht das mit dem L298 auch effizient?
    Von zennehoy im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 03.03.2005, 12:11

Stichworte

Berechtigungen

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

Labornetzteil AliExpress