- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 26

Thema: LED Matrix möglichst effizient ansteuern

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #8
    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

    Das ist die PingPong-Platine vom C. 120 LEDs mit einem 8MHz-Mega8:
    http://www.conrad.de/ce/de/product/902766/
    https://www.roboternetz.de/community...mprogrammieren

    Zum Bildspeicher: Das Wort klingt zwar gewaltig, aber es handelt sich nur um neun 16-Bit-Werte die selbstverständlich im Ram des µC verwaltet werden. Der Aufbau eines Einzelbildes läuft etwa so: Alle Spalten aus, Zeilenbits für erste Spalte setzen, erste Spalte einschalten, kurz warten, alle Spalten aus, Zeilenbits für zweite Spalte setzen, zweite Spalte ein, kurz warten (später mal ist das der Abstand zwischen den ISR-Aufrufen), alle Spalten aus, ... , letzte Spalte an, kurz warten, letzte Spalte aus, Zeilenbits für erste Spalte setzen,...usw. immer schneller bis das Bild nicht mehr flimmert.

    Für den Anfang, um es mit Interrupts nicht ünnötig kompliziert zu machen, kann man das in der Hauptschleife programmieren:

    Code:
    $regfile = "m16def.dat"
    $crystal = 16000000
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
    Declare Sub Zeilensetzen
    
    Dim Bildspeicher(11) As Word , Spalte As Byte , Temp As Word
    
    Bildspeicher(1) = &B01100001111
    Bildspeicher(2) = &B01100001111
    Bildspeicher(3) = &B10000001111
    Bildspeicher(4) = &B10000001111
    Bildspeicher(5) = &B01111110000
    Bildspeicher(6) = &B01111110000
    Bildspeicher(7) = &B10011110000
    Bildspeicher(8) = &B10011110000
    Bildspeicher(9) = &B01100001111
    Bildspeicher(10) = &B01100001111
    Bildspeicher(11) = &B10000001111
    
    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 9 : Reset Portd.7
                   Zeilensetzen
                   Set Portc.7
       End Select
    
       If Spalte < 9 Then Spalte = Spalte + 1 Else Spalte = 1
    
       Waitms 10
    
       'hier kann man dann das Bild zusammenbasteln
    
    Loop
    
    End
    
    Sub Zeilensetzen
       Temp = Bildspeicher(spalte)
       If temp.0 = 1 Then Set Porta.0 Else Reset Porta.0
       If temp.1 = 1 Then Set Porta.1 Else Reset Porta.1
       If temp.2 = 1 Then Set Porta.2 Else Reset Porta.2
       If temp.3 = 1 Then Set Porta.3 Else Reset Porta.3
    
       If temp.4 = 1 Then Set Portb.4 Else Reset Portb.4
       If temp.5 = 1 Then Set Portb.5 Else Reset Portb.5
    
       '...
    
       If temp.10 = 1 Then Set Portc.1 Else Reset Portc.1
       If temp.11 = 1 Then Set Portc.2 Else Reset Portc.2
    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
    (Kompilierbar, aber ungetestet und eher symbolisch gedacht)

    Gruß

    mic
    Geändert von radbruch (22.10.2011 um 13:24 Uhr) Grund: Kleine Optimierung eingebaut
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ä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, 20:56
  2. Eine LED-Matrix 5x7 ansteuern
    Von Tryan im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 66
    Letzter Beitrag: 01.03.2009, 17:42
  3. 10V aus 3,3 - möglichst ohne IC?
    Von Zachso im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 16.02.2008, 11:28
  4. LED-Matrix, wie Ansteuern?
    Von tholan im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 27.04.2006, 18:24
  5. Geht das mit dem L298 auch effizient?
    Von zennehoy im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 03.03.2005, 11:11

Stichworte

Berechtigungen

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

Labornetzteil AliExpress