led cube Multiplexen Timer Interupt

Gast #2491495
Lesenswert?

Hallo,
ich baue gerade einen led cube und habe mich dabei an folgendem link 
orientiert: http://www.mikrocontroller.net/articles/LED_cube

Anstatt der Mosfets habe ich allerdings transistoren (PN2222) genommen.
Mein Aufbau ansich funktioniert, dass heißt ich bekomme die leds zum 
leuchten.

als nächsten schritt wollte ich den cube multiplexen.
Aber genau da ist das Problem.
Nehme ich den quellcode von der Seite 
(http://www.mikrocontroller.net/articles/LED_cube) sehe ich nur 
irgendein geflacker oder nichts.
an den transistoren liegt es glaub ich nicht, da ich auch keine 
ausgangsspannung am uC messen kann.

Ich würde das Problem eher auf den Timer und dem Interrupt eingrenzen,
allerdings fehlt mir da der richtige Lösungsansatz.
Habt ihr irgendeine Idee, wie ich den cube mit multiplexing zum laufen 
bekomme?
Gast #2492836
Lesenswert?

Danke das hat mich schon einen riesen Schritt vorangebracht.

Was mich nur jetzt wundert ist, dass nur ein Teil der Animationen 
abgespielt werden kann bzw. man sieht nur einen Teil, da beim rest keine 
led leuchtet.
Das heißt ich kann den schriftverlauf sehen und das männchen, welches 
geht geht.

Bei der Timereinstellung steht:

void cube_show_init( void )
{
  TCCR0 |= (1 << CS02) | (0 << CS00);
  TIMSK |= (1 << TOIE0);
}

wie sieht es dort mit cs01 aus?
1    0    0    CPU-Takt / 256 für 0<<cs01
1    1    0    Externer Pin TO, fallende Flanke für 1<<cs01
#2492856
Lesenswert?

> Was mich nur jetzt wundert ist, dass nur ein Teil der
> Animationen abgespielt werden kann bzw. man sieht nur
> einen Teil, da beim rest keine led leuchtet.

Eine Strategie, die sich bei mir extrem bewährt hat lautet:
Mach nicht gleich das komplexeste Beispiel, das du finden kannst, 
sondern fang erst mal mit einfachen Sachen an. Dabei fallen dann Dinge 
auf, die behoben werden müssen. Und beim nächsten, möglicherweise 
komplexeren Beispiel fallen dann wieder andere Dinge auf, die ebenfalls 
behoben werden.
Nach einigen Runden sind dann die Kinderkrankheiten alles beseitigt und 
siehe da, dann funktionieren auch die komplexen Beispiele alle auf 
Anhieb.

Im Falle eines LED-Cube wäre mein erstes Testprogramm ein Programm, 
welches nacheinander alle LED einschaltet. Zuerst jede LED einzeln, 
danach immer 1 LED mehr, damit ich sehe, ob die Spannungsversorgung in 
die Knie geht.
Und erst dann, wenn ich sicher bin, dass jede LED für sich alleine 
angesteuert werden kann und auch die Spannungsversorgung mitmacht, erst 
dann geh ich auf Animationen.

Edit:
Die Funktion "cube_full" hast du gesehen? Das ist mehr oder weniger 
genau eine der ersten Funktionen die ich benutzen würde. Ihr Zweck: Alle 
LED aufdrehen. Wenn dann nicht alle LED leuchten, gibt es ein 
Hardware-Problem, dem man nachgeht

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren