FunnyMatrix64 Alternativsoftware

      FunnyMatrix64 Alternativsoftware

      Da im Ursprungsthread zur FunnyMatrix64 schon so viel Zeug drin ist, hier mal kompakt gesammelt alternative Programme für diesen Bausatz. Gerne können auch andere User Software in diesen Thread stellen, aber bitte nur fertige, keine Entwicklungs-Doku, Fragen bei Problemen o.ä. - halt nur, was fertig ist und gleich draufgeflasht oder weiter benutzt werden kann.

      Hinweis: der mitgelieferte Mega8 ist gelocked, wenn man also die Original-SW aufheben will, muss man das ganze IC aufheben und für andere SW einen neuen Mega8 benutzen, da man die SW vom mitgelieferten nicht runterbekommt.

      Hier dann mal ne SW von mir, ein Demo mit 5 Programmen, die Matrix wird mit 4-Bit-PWM (16 Helligkeitsstufen) angesteuert - es sind keine Frames hinterlegt, sondern die Animationen werden durch (sehr einfache) Algorithmen erzeugt. Die ersten 4 sind einfach Schleifen, die versch. Werte in den Bildschirmspeicher schreiben, das 5. schreibt immer eine zufällige Helligkeit an eine zufällige Position.

      Ihr könnt da auch mal div. Zahlen einfach ändern und schauen was passiert - kaputt gehen kann ja nix. Ausserdem kann man das Ganze auch als Grundgerüst für eigene Programme nehmen, ist gut kommentiert, das sollte sich leicht rausfinden lassen, wie man da mehr Programme hinzufügt...

      hier mal ein Video der 5 Animationen:



      und unten das Ganze als AVR-Studio-Projekt anbei.

      Die eigentliche Multiplex-Routine (im Prinzip ne 8-Kanal-PWM, bei der bei jedem Durchlauf die Zeile eins weitergeschaltet wird) ist als eigene Datei (Multiplex_8x8_PWM.inc) dabei - ebenfalls gut kommentiert. Da stehen auch die verwendeten Register etc. drin, das Register "Null" muss immer 0 enthalten (für Berechnungen).

      Sie liest die Werte aus dem RAM, ein Byte pro Pixel, ab der per ".equ ARR_ScreenRAM = 0x60 ; Startadresse Bildschirmspeicher" festgelegten Position. Geht links oben los, das 2. Byte ist das Pixel rechts daneben, und so weiter, das letzte Byte das Pixel rechts unten. Die Routine muss natürlich regelmäßig (Timer-Interrupt) aufgerufen werden.

      Es mag verschwenderisch erscheinen, bei 4-Bit-PWM 1 Byte pro Pixel zu verwenden, aber die Routine kann ja auch auf andere Auflösungen angepasst werden - einfach hier: ".equ PWM_Steps = 16" eine andere Zahl eintragen, kann auch "krumm" sein, also wer will, kann z.B. auch ne PWM mit 74 Stufen machen... Maximum ist 255.

      Die Refresh-Rate der Matrix sinkt natürlich mit steigender Auflösung - hier ist es 8.000.000 (8 MHz) / 256 (1 Timer-OVF) / 8 (Zeilen) / 16 (PWM-Stufen) = 244 Hz - mit nem 20-MHz-Quartz, Aufruf alle 100 Takte (per Compare Match mit CTC) kann man auch die (fast, 255 statt 256 Stufen) vollen 8 Bit mit immerhin 98 Hz Refresh machen...
      Dateien
      • FM64-PWM.zip

        (13,41 kB, 665 mal heruntergeladen, zuletzt: )
      It's only light - but we like it!

      Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
      Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
      Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!
      OK, auf Pesis Wunsch und weils ja schon auch hierhergehört:
      Die "Autonome Snake".
      Eine Schlange aus 5 LEDs die sich zufällig über die Matrix bewegt.
      Hier der aktuelle Source (muss man ja nicht 2x hochladen...)
      Anmerkung: das $SIM im Source-Code muss man vor dem Flashen rauswerfen, ansonsten läuft die Snake Vollgas!
      ledstyles.de/index.php?page=At…f8ca0a013da4ceacd67787b29

      Video der Snake in Aktion - dank Pesi...


      Mögliche Erweiterungen:
      - PWM-Snake mit weichem Laufen oder was auch immer nett aussieht.
      - Zwei Snakes die einander ausweichen. Schon schwieriger und auf ner rot/grün Matrix sicher cooler.
      - Eine unendliche Snake die solange läuft bis sie keinen Ausweg mehr findet, sich dann rückwärts aufrollt. Uff :led: