Forum: Mikrocontroller und Digitale Elektronik Assembler für LED- Cube


von jojojo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen.

Ich habe mir vor einer Weile diesen LED- Cube mit Hilfe der Anleitung 
von Elektor nachgebaut. Mit der bereits enthaltenen Software 
(cube_1mhz_atmega32.hex) funktioniert der auch, ist aber nur ein test 
programm, also würde ich nun gerne ein eigenes Programm (LED- Muster) 
schreiben.

http://www.elektor.de/jahrgang/2008/dezember/led-kubus.744929.lynkx

Mein Problem ist ich bin noch leihe, habe nun zwar schon sehr sehr viel 
gelesen aber komme trotzdem nicht weiten.

Ich bin jetzt auf Assembler gekommen, weil ich auch mit der Vorlage von 
Elektor (ist in C geschrieben) nicht klar gekommen bin bzw. ich weiß 
nicht was ich damit machen soll.
Vielleicht kann mir hier jemand verständlich erklären was ich damit 
machen soll.
Ansonsten reicht mir auch der Assembler Grundaufbau für den LED-Cube 
vielleicht so das eine LED leuchtet.

Ich hoffe mir kann einer helfen.
Ich sage schon mal danke.

Noch ein paar infos die ich weiß. ATmega32 mit 1Mhz interner Takt

Und hier noch die Spalten und Ebenen des Würfels.
PORTA
Bit7     Bit6     Bit5     Bit4     Bit3     Bit2     Bit1     Bit0
PA7      PA6      PA5      PA4      PA3      PA2      PA1      PA0
Spalte8  Spalte7  Spalte6  Spalte5  Spalte4  Spalte3  Spalte2  Spalte1

PORTB
Bit7     Bit6     Bit5     Bit4     Bit3     Bit2     Bit1     Bit0
PB7      PB6      PB5      PB4      PB3      PB2      PB1      PB0
Spalte25 -        -        Layer5   Layer4   Layer3   Layer2   Layer1

PORTC
Bit7     Bit6     Bit5     Bit4     Bit3     Bit2     Bit1     Bit0
PC7      PC6      PC5      PC4      PC3      PC2      PC1      PC0
Spalte16 Spalte15 Spalte14 Spalte13 Spalte12 Spalte11 Spalte10 Spalte9

PORTD
Bit7     Bit6     Bit5     Bit4     Bit3     Bit2     Bit1     Bit0
PD7      PD6      PD5      PD4      PD3      PD2      PD1      PD0
Spalte24 Spalte23 Spalte22 Spalte21 Spalte20 Spalte19 Spalte18 Spalte17

Falls noch andere Infos benötigt werden bitte sagen.

Danke

von Andreas P. (andreaspfau)


Lesenswert?

Hi,

ich hab jetzt keine Lust mir den Artikel zu kaufen, aber ich nehme an, 
da steht drin wie so ein LED-Cube grundsätzlich funktioniert, und hoffe, 
dass du das verstanden hast bevor du anfängst zu programmieren.

Grundsätzlich musst du ein Muster per Code generieren und über 
Multiplexing auf die LEDs bringen.

Außerdem solltest du C können. Dafür gibts genügend Tutorials...

Sofern du nicht bereits Assembler kannst, rate ich dir davon ab, das ist 
noch komplizierter als C. Schau dir am besten mal die Datei draw.c an, 
diese bietet Funktionen wie "cube_fill" zum eine ganze Ebene ausfüllen 
oder "led_set", welches eine einzelne LED an- oder ausschält. Die Datei 
"animations.c" ruft diese Funktionen auf um Muster zu erzeugen. Wie du 
das machst ist deiner Kreativität überlassen. In der monocube.c werde 
die einzelnen Animationen zyklisch durchlaufen (Funktion "main"), hier 
könntest du ja eine selbergeschriebene Animation aufrufen.

Ich rate dir dich in C und den Code einzuarbeiten, das Rad neu zu 
erfinden, zumal in Assembler, ist nicht gerade das Trivialste, vor allem 
da die draw.c schon viele tolle Routinen bietet. Ansonsten: 
verinnerliche nochmal die Multiplex-Geschichten (siehe Doku von Elektor) 
und dann takte die einzelnen LED-Leitungen durch, indem du zyklisch 
einzelne Ports an und ausschälst.

von jojojo (Gast)


Lesenswert?

Danke für die schnelle Antwort.

Ja, ich habe verstanden wie der Funktioniert.
Jain, Assembler kann ich ein bissel aus der Schule. (schon ne weile her)
Ich wollte Assembler als Notnagel nehmen, weil ich mit den Dateien im 
Ordner "src" nichts anfangen kann, bzw. ich weiß nicht was ich damit 
machen soll.
Falls mir das einer erzählen könnte wäre das auch nicht schlecht.
Und darum Assembler damit die vielen Stunden des Baus nicht nur für das 
DEMO Programm ist.

Hab zwar schon selbst viel versucht mit den ...c dateien, aber leider 
ohne erfolg.

Ich hoffe es kann mir einer ne schnell und verständliche anleitung 
schreiben, oder auch zuschicken.
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.