Forum: Mikrocontroller und Digitale Elektronik selbstgebaute Laufschrift programmieren


von T. K. (cotty)


Lesenswert?

Hallo Leute!

Verzweifle so langsam wirklich!
Hab ein reines C++ Problem und nichtmal entsprechende Programmierer 
scheinen mir so wirklich helfen zu können/wollen.

Mein Problem ist folgendes:

Ich habe eine Laufschrift gebaut. Auf dieser befinden sich 12mal 
5x7LEDs.
Zur Beschaltung habe ich leider keine Fotos oder Schaltpläne, aber der 
Aufbau ist recht simpel gehalten:
Die 5er-Reihen werden über je einen FAT angesteuert, die 7er-Reihen je 
Feld über einen 74LS374. Dieser schaltet bei einem High-Signal die 
sieben anliegenden Eingänge frei und hält sie, bis dieser Vorgang 
wiederholt wird.
Gesteuert wird das ganze mit einem AT89S52 der mit seinen Ausgängen, die 
fünf FATs, die sieben Eingänge an den 74LS374 und die zwölf 
Steuerleitungen der 74LS374 schaltet.

Mein Problem ist nun folgendes:

Ich habe absolut keine Idee, wie ich platzsparend ein Programm schreien 
kann, das so eine Art Datenbank enthält, um die jeweiligen Bitfolgen für 
die einzelnen Reihen zu zu weisen. Da das ganze immer je FAT geschehen 
sollte, kann ich das ganze nicht je Feld machen, sondern muss das ganze 
dann noch auf die 12 ersten Reihen verteilen.. Und damit bin ich einfach 
absolut überfordert!

Würde mich über eure Hilfe freuen!

Gruß Cotty

von Falk B. (falk)


Lesenswert?

@ T. K. (cotty)

>Hab ein reines C++ Problem

Ach ja?

>Die 5er-Reihen werden über je einen FAT angesteuert, die 7er-Reihen je

Muss ja ein dickes Ding sein, wen der FET plötzlich FAT ist ;-)

>dann noch auf die 12 ersten Reihen verteilen.. Und damit bin ich einfach
>absolut überfordert!

Aber laut von C++ rumtönen, was? Lern erstmal BASIC.

>Würde mich über eure Hilfe freuen!

Das Zauberwort heisst Array, und dazu braucht man keinen Funken C++. 
Schnödes BASIC, Assember oder C tuns vollkommen.

MFG
Falk

von holger (Gast)


Lesenswert?

>Zur Beschaltung habe ich leider keine Fotos oder Schaltpläne, aber der
>Aufbau ist recht simpel gehalten:

Ohne Schaltplan ist deine Frage auch recht sinnfrei.

>je einen FAT angesteuert

Wie wäre es statt einem FAT mit einem FET?

von T. K. (cotty)


Lesenswert?

Alles klar.. Hab schon verstanden!

Verzeiht mir die Störung und die Tippfehler.. Bin seit gut 36 Stunden 
auf den Beinen, aber das tut ja jetzt auch nicht zur Sache.

Ich werde euch damit in Ruhe lassen!

Nochmals Entschuldigung!

von Peter D. (peda)


Lesenswert?

Tobias K. wrote:
> Hab ein reines C++ Problem und nichtmal entsprechende Programmierer
> scheinen mir so wirklich helfen zu können/wollen.

Sie können es einfach nicht, auch wenn sie es wollten.

Ich kann das voll verstehen, daß C++ Programmierer nichts mit 
hardwarenaher Programmierung am Hut haben, das ist ne völlig andere 
Liga.

C++ kannst da voll vergessen das ist härtestes Bits Schieben, Echtzeit 
und schnelle Interrupts.


> Ich habe eine Laufschrift gebaut. Auf dieser befinden sich 12mal
> 5x7LEDs.
> Zur Beschaltung habe ich leider keine Fotos oder Schaltpläne, aber der
> Aufbau ist recht simpel gehalten:
> Die 5er-Reihen werden über je einen FAT angesteuert, die 7er-Reihen je
> Feld über einen 74LS374. Dieser schaltet bei einem High-Signal die
> sieben anliegenden Eingänge frei und hält sie, bis dieser Vorgang
> wiederholt wird.

Das klingt nicht simpel sondern unnötig kompliziert.
Aber ein Schaltplan ist unbedingt nötig, um alles zu verstehen (Papier + 
Digitalkamera reicht).

Ich hab mir auch mal ne Laufschrift gebaut.
Sinnvoll ist es, diese Zeilenweise anzusteuern, d.h. Du hast 7 Fets für 
jede Zeile. Diese FETs werden dann mit einem 74HC595 der Reihe nach 
angesteuert.
Dann brauchst Du noch für die 12*5 = 60 Spalten 60 Ausgänge, da sind 
noch weitere 8 Stück 74HC595 sinnvoll (mit 60 Vorwiderständen).

Und im Timerinterrupt werden dann immer 60 Spaltenbits reingeschoben und 
die nächste Zeile eingeschaltet. Im SRAM legst Du dazu nen Bildspeicher 
von 60 Bytes an.


So, das war der einfache Teil jetzt wirds richtig aufwendig:
Du must Dir ne Zeichentabelle im Flash (~2kB) anlegen, wo die Bitmuster 
der einzelnen ASCII-Zeichen abgelegt sind.

Dann brauchst Du noch Ausgabefunktionen, um ein Zeichen an eine 
bestimmte Stelle zu malen.
Dann  brauchst Du noch nen Textspeicher, wo Du den auszugebenden Text 
ablegst.
Dann brauchst Du noch Effektfunktionen, um z.B. den Bildspeicher laufen 
zu lassen usw.


> Gesteuert wird das ganze mit einem AT89S52

Der wird mit seinen 8kB schnell am Ende sein, wenn man noch nie was in C 
auf nem MC gemacht hat.
Und wenn man nur C++ auf nem PC gemacht hat, sollte es mindestens schon 
ein 128kB AT89C51RE2 sein, da PC-Programmierer nur extrem 
verschwenderisch zu programmieren gelernt haben.


> Ich habe absolut keine Idee, wie ich platzsparend ein Programm schreien
> kann

Vergiß das Platzsparen erstmal völlig.


> Und damit bin ich einfach
> absolut überfordert!

Das ist ja auch definitiv kein Anfängerprojekt, sondern selbst für nen 
Programmierprofi ne harte Nuß.


Plane mal >1 Jahr für das ganze Projekt ein.

Meins liegt unfertig in irgendner Ecke.


Peter

von Falk B. (falk)


Lesenswert?

@  Peter Dannegger (peda)

>> Und damit bin ich einfach
>> absolut überfordert!

>Das ist ja auch definitiv kein Anfängerprojekt,

Ja.

> sondern selbst für nen Programmierprofi ne harte Nuß.

Bitte? Ein paar popelige Schieberegister ansteuern und Multiplexen? Was 
für "Profis" sind das denn?

>Plane mal >1 Jahr für das ganze Projekt ein.

Sowas macht man mal an nem langen Wochenende. Wens hoch kommt mal ne 
Woche.

@ OP

Siehe LED-Matrix
http://www.electronicspit.com/users/pit/scroller.php

MFG
Falk

von Peter D. (peda)


Lesenswert?

Falk Brunner wrote:
> Sowas macht man mal an nem langen Wochenende. Wens hoch kommt mal ne
> Woche.

O.k., Du machst es ihm schnell mal nebenbei und ich nehme alles zurück.


> Siehe LED-Matrix:
(This page isn't finished yet)

Willkommen im Klub.


Peter

von Falk B. (falk)


Lesenswert?

@ Peter Dannegger (peda)

>> Sowas macht man mal an nem langen Wochenende. Wens hoch kommt mal ne
>> Woche.

>O.k., Du machst es ihm schnell mal nebenbei und ich nehme alles zurück.

Wo ist das Problem? ASCII-Fonts gibts im Netz, die pixelt keiner selber. 
Bissel muxen ist Kinderkram, tausendmal gemacht. Dann noch die Zeichen 
aus dem Char Rom in den Video RAM kopieren, bissel Scrollen, Fettig.

Aber wo steht was davon, dass ich für den OP das machen will? Er fragte 
nach Lösungen für das Problem. Nicht nach Auftragnehmern.

>> Siehe LED-Matrix:
>(This page isn't finished yet)

Was fehlt denn? Alle möglichen Ansteuermöglichkeiten per Bipolar, FET, 
Treiber und weisdergeierwas?

Es ist ein GRUNDLAGENartikel.

>Willkommen im Klub.

Nö.

MFG
Falk

von Matthias L. (Gast)


Lesenswert?

>> Sowas macht man mal an nem langen Wochenende. Wens hoch kommt mal ne
>> Woche.


Ich glaube auch eher ein Jahr für ihn als Anfänger, der das (zugegeben 
nicht sehr geeignetes Anfängerprojekt) nutzt, um sich in alles 
einzuarbeiten.

Für einen "alten Hasen" ist das natürlich fix gemacht...

von Ja mann (Gast)


Lesenswert?

Ich bin für einen Grundlagenartikel der sich mit dem Umgang von 
Fragestellern befasst. So wie hier muss ja nun nicht unbedingt sein.

von D. S. (jasmin)


Lesenswert?

Stimmt,

ich verstehe auch nicht was das soll.
Beim Studium gab's in den ersten Reihen so'n Überflieger der bei Fragen 
immer tönte "na dann werd doch Metzger"....

Nicht wenig später hat sich sein Verhalten dann grundlegend geändert und 
er hat unserer Lerngruppe dann immer Mettbrötchen mitgebracht...., damit 
er dabei sein durfte.

Ich kann mich gut erinnern wie mich gute Freunde an die Hand nahmen und 
mir am 6502 und Umgebung ein paar Grundlagen beibrachten, später habe 
ich das Ding dann auswendig gebetet.

Ohne Hilfe wäre ich verreckt.

Heutzutage hätte ich diese Chance nicht mehr, weil mir unter damaligen 
Umständen die 700 € fürs Semester fehlen würden.
Vielleicht befindet man sich in "elitären" Kreisen lieber allein ?


Danke !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.