Laufschrift programmieren (Denksport für echte Profis) ;)



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • I     II   III    IV    V     VI   VII   VIII   IX    X     XI   XII
      12345 12345 12345 12345 12345 12345 12345 12345 12345 12345 12345 12345
    a OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO
    b OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO
    c OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO
    d OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO
    e OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO
    f OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO
    g OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO OOOOO
    


  • Was muss man denn jetzt machen, damit bestimmte LEDs brennen?



  • Beispiel:

    Ich möchte im Feld I eine sechs haben:

    Dann muss ich für 1 den Wert 0111110 haben. Dieser muss also zugewiesen werden. Dann müssen alle anderen 11 Felder also II-XII mit dem Wert für die jeweiligen Felder zugewiesen werden. Anschließend muss 2 den Wert 1000001 erhalten. Und dann wieder alle anderen 2er. Das solange, bis alles ausgegeben wurde und das ganze von vorn beginnt.
    Also sowas in der Art wie:

    Eingang = 6;

    Ausgang = I=1; 1=1; Bitfolge=1000001;

    Letztlich brauch ich also einen Code, der mir für meine 6 die vorher definierten Bitfolgen auf meine Werte legt. Und dass, egal um welches Feld es sich handelt.
    Wie gesagt ist alles ein wenig komplizierter...



  • Geil - genauso etwas hatte ich mal gebaut. Ohne Prozessor, nur mit handgelöteter
    Hardware und einem Zeichengenrator im Eprom. Die Tastatur lief über ein Latch in
    ein statisches Ram, über Zähler dann ausgelesen und angezeigt.

    Eine Saulöterei mit dem 960 LEDs. :-)))))))))))

    Mit einem uP geht das heute einfacher.

    Die kompletten Panels gibt's heute als China-ware. Selbstbau lohnt nicht.



  • Die Begeisterung freut mich.. Aber nun hab ich den ganzen Kack schon gelötet und ich sage dir:
    1. Nicht schön, so ne lange Platine zu finden, aber Connections machen es möglich!
    2. Nicht schön, ein so großes Säurebad zu finden, um das ganze dann auch noch zu ätzen, aber auch hier Connections!
    3. Nicht schön, 420 LEDs, also monoton 840 Beinchen auf gleiche länge bringen, einsetzen und anlöten, auf so ein Board zu bekommen!
    4. Nicht schön, eine komplette Software für den Mist zu schreiben, um dann festzustellen, dass der µC zu klein für so ein großes Programm ist..
    5. Nicht schön, keinen zu finden, der mir helfen kann.. Suche jetzt schon seit gut zwei Monaten..



  • Naja.. Das leben ist hart ^^

    Brauche aber echt nur eine Idee, für nen Register, sodass ich wenn ich ne sechs da reinschmeiße für meine 5 Ausgangswerte die entsprechenden Bitfolgen bekomme.. Das spart unendlich viel Platz ^^



  • 420 ? Weichei 🙂

    Mit einem der modernen uCs ist das doch kein Problem.

    Ich würde die Anzeige multiplexen, dh, die Werte für an/aus aus einem Zeichengenerator
    holen (wie angegeben, halt ein Bitmuster) und dann die Spalten und Zeilenn einzeln
    durchgehen.
    Im Prinzip der Nachbau eines Primitiv-Grafik-Controllers.

    Das ganze über einen Timer steuern und den Strom (damit's auch hell wird) durch
    dir LEDs etwas großzügiger dimensionieren.

    Es wird eine ziemliche Pfriemelei das zu optimieren, aber viel Spaß !



  • ok schrieb:

    Was muss man denn jetzt machen, damit bestimmte LEDs brennen?

    z.B. ohne Vorwiderstand in die Steckdose stecken.



  • Witzbald schrieb:

    ok schrieb:

    Was muss man denn jetzt machen, damit bestimmte LEDs brennen?

    z.B. ohne Vorwiderstand in die Steckdose stecken.

    Das macht mit den kleinen Trabistörchen mit Metalldeckel aber mehr Spaß.
    *pfump* kein Deckel mehr 🙂



  • Scheppertreiber schrieb:

    Witzbald schrieb:

    ok schrieb:

    Was muss man denn jetzt machen, damit bestimmte LEDs brennen?

    z.B. ohne Vorwiderstand in die Steckdose stecken.

    Das macht mit den kleinen Trabistörchen mit Metalldeckel aber mehr Spaß.
    *pfump* kein Deckel mehr 🙂

    diese 0.1µF/160-volt kondensatoren aus alten röhrenradios sind auch toll. die halten das ca. 30 sekunden aus und dann zerfetzt es sie wie einen sylvesterknaller.



  • Oder die netten Elkos 220 uF / 6.3V ... eine Riesensauerei. Was auch gut knallt
    beim Löten sind diese kleinen Lithiumknopfzellen 🙂



  • ^^quecksilber-schalter aus aus alten treppenhausautomaten sind auch nicht zu verachten. allerdings sollte man's nur im freien machen, wegen der dämpfe und so.
    🙂



  • cotty schrieb:

    Die Begeisterung freut mich.. Aber nun hab ich den ganzen Kack schon gelötet und ich sage dir:
    1. Nicht schön, so ne lange Platine zu finden, aber Connections machen es möglich!
    2. Nicht schön, ein so großes Säurebad zu finden, um das ganze dann auch noch zu ätzen, aber auch hier Connections!

    Warum tust Du Dir das an? Mit dem selbstgeätzten Zeug vertust Du nur viel Zeit für miese Qualität, mal abgesehen von der Sauerei.

    cotty schrieb:

    3. Nicht schön, 420 LEDs, also monoton 840 Beinchen auf gleiche länge bringen, einsetzen und anlöten, auf so ein Board zu bekommen!

    Mir kommen die Tränen. Bei Conrad kannst Du so LED- Zeilen fix und fertig kaufen, per COM programmierbar. Wenn Du's schon unbedingt selbst machen willst, sollte Dir aber von vorneherein klar sein, daß Du kaum eine Chance hast, mit der Bastelei kostenseitig unter der Fertiglösung zu bleiben. Zudem bist Du uns schuldig geblieben, wie Deine Matrix nun wirklich verschaltet ist.

    cotty schrieb:

    4. Nicht schön, eine komplette Software für den Mist zu schreiben, um dann festzustellen, dass der µC zu klein für so ein großes Programm ist..

    Nicht schön, festzustellen, daß Dir nicht klar ist, wie trivial das Problem ist. Meine Matrixtreiber (soft) brauchen im Schnitt 100 Byte ASM- Code plus Tabelle. Das darüberliegende Problem mit der Uhr paßt in C vermutlich auf eine Bildschirmseite. Controller mit mehr als 2 k EPROM aufzutreiben, war zuletzt 1988 eine Schwierigkeit.

    cotty schrieb:

    5. Nicht schön, keinen zu finden, der mir helfen kann.. Suche jetzt schon seit gut zwei Monaten..

    Nicht schön, aber mein Klo ist hoffnungslos verstopft und ich finde keinen, der das kostenlos freimachen mag. Wenn der Rohrmax kommt, will er 130 EUR Anfahrt und für jede angefangene halbe Stunde 50 EUR plus Märchensteuer. Ich weiß, daß er nach 10 Minuten fertig sein wird und ich mit der Handspirale fünf, sechs Stunden an Kackesteinen herumkratze, bis ich ungefähr das gleiche Reinigungsergebnis haben werde.

    Wenn es Dein Hobby ist, billige China- Displays in Handarbeit nachzustricken, darfst Du nicht motzen, wie mühselig das ist. Wenn Du Software dazu brauchst und Dich überfordert siehst, zergliedere die Probleme (Matrixtreiber und Timer) und Du wirst sehen, wie simpel das ist. 😃

    Jedenfalls ist Kotsteinwegkratzen nicht mein Hobby, der Rohrmax kommt am Donnerstag und ich werde wohl schluchzend gute 200 EUR für geräumte 5 m Rohr abdrücken müssen. 😞



  • Moin!

    Was du brauchst ist ein eigener Zeichensatz für die Ziffern.
    Leg dir eine Tabelle (Mein_Zeichensatz) an, mit 10 Elementen (0 - 9). Jedes dieser Elemente speichert die Adresse einer weiteren Tabelle (Zeichen0..Zeichen9), in der du die für die Ziffern nötigen Bitmuster Zeile für Zeile speicherst.

    Wenn du jetzt die erste Zeile (für beispielsweise 67543) anzeigen willst, lädst du zuerst das erste Element aus der Adresse von Mein_Zeichensatz[6] (Zeichen6[0]) in einen Speicher, hängst dann das nächste Element ran (Zeichen7[0]) und so weiter, bis (Zeichen3[0]). Jetzt schaltest du alle Zeilen aus, lägst den Speicherinhalt an die Ports und schaltest die Zeile "a" an. Das machst du bis zur letzten Zeile und fängst dann wieder von vorne an.


Anmelden zum Antworten