LED-Cube Programm Optimierung

OP #4033103
Lesenswert?
• ▲
▼
Hallo,

ich habe einen 4x4x4 LED Cube, welcher mit 16 Pins für die Spalten und 2 
Pins (DEMUX) für die 4 Ebenen angesteuert wird. Ich benutze einen ATMEGA 
168.

Die eigentliche Frage ist, wie ich am besten mein Programm dafür 
schreibe. Bisher habe ich einfach jede LED an und aus gemacht und die 
Ebenen im Multiplexing-Verfahren betrieben. Mein Programm ist viel zu 
lang und ich hätte es gern etwas komprimiert..
Welches Verfahren würde sich dafür eignen und wie gehe ich dann am 
besten vor?
Gast #4033127
Lesenswert?
• ▲
▼
M. W. schrieb:
> Mein Programm ist viel zu lang

So lang:
1
struct
2
{
3
   uint8_t lower;
4
   uint8_t upper;
5
}
6
leds[4];
7

8
while(1)
9
{
10
    PORTA=i;
11
    PORTB=leds[i].lower;
12
    PORTD=leds[i].upper;
13
    i=(i+1)&3;
14
    _delay_ms(1);
15
}

Das kann nicht das Problem sein.

Viel fragewürdiger ist, wie man interessante Animationen hinbekommt, 
also den Inhalt von leds bestimmt.

Und da fäällt den  meisten auch nichts ein, weswegen die meisten LED 
Cubes langweilig in der Ecke verstauben.

Man müsste mindestens Helligkeit, wenn nicht gar Farbe steuern können, 
das macht aber die LED Ansteuerung auch nicht komplizierter.
1
struct
2
{
3
   uint8_t lower[8];
4
   uint8_t upper[8];
5
}
6
leds[4];
7

8
while(1)
9
{
10
    for(n=0;n<7;n++)
11
    {
12
        PORTA=i;
13
        PORTB=leds[i].lower[n];
14
        PORTD=leds[i].upper[n];
15
        _delay_us(1<<n);
16
    }
17
    i=(i+1)&3;
18
}

Bleibt also eher die Frage, woher das 3d-Video kommt, das angezeigt 
werden soll. Bei 4 x 4 x 4 wird es jedenfalls mit animiert schwimmenden 
Delphinen unter Wasser schwer.
#4033425
Lesenswert?
• ▲
▼
@ M. W. (m_wu)

>Die eigentliche Frage ist, wie ich am besten mein Programm dafür
>schreibe.

Mit einem Editor.

> Bisher habe ich einfach jede LED an und aus gemacht und die
>Ebenen im Multiplexing-Verfahren betrieben.

So wie es der Rest der Welt auch macht.

> Mein Programm ist viel zu
>lang und ich hätte es gern etwas komprimiert..

Aha. Und wo ist dein Programm? Wo können WIR es sehen?

>Welches Verfahren würde sich dafür eignen und wie gehe ich dann am
>besten vor?

Mit einem Timer und Interrutp.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.