RGB LED 3x3x3

Gast #4118352
Hallo zusammen,
habe ein Problem mit meinem RGB LED Cube.
angesteuert wird er mit einem Atmega168 und 4 Schieberegistern des typen 
TLC5916.
Nun ist es so, dass sich gleich das erste Schieberegister aufhaengt.
Takt kommt an, SDI kommt auch an, OE ist auf LOW und LE ist auf HIGH.

Habe zum Fehler finden einen Taster angebracht, mit dem ich manuell eine 
Taktflanke weitergehe.

Siehe da nach dem 2x mal druecken, haengt sich das Register irgendiwe 
auf.

Viele Gruesse
Gast
Ulrich schrieb:
> Habe zum Fehler finden einen Taster angebracht, mit dem ich manuell eine
> Taktflanke weitergehe.

Bist du dir sicher _EINEN Takt weiterzuschalten? Das ist ein Taster, 
Taster prellen. Aber ohne weitere Infos wird man echt sehr schwer helfen 
können.
Gast
Hallo, danke schonmal.

Es funktioniert leider immer noch nicht.
Habe Spasseshalber anstelle des uC die wichtigen Ausgaenge mit 
Silberdraht auf dem Sockel nachgebaut und die CLK per Hand nachgestellt.

Siehe da, funktioniert so wie es soll...

Also muss es denk ich an der Kommunikation des uC und der 
Schieberegister liegen.

Hier mein Code, vll ist es ja ein einfacher Softwarefehler den ich nicht 
sehe..

Danke (;
1
/****************************************************************/
2
/** INCLUDES **/
3
/****************************************************************/
4
#include <avr/io.h>
5
#include <util/delay.h>
6

7
/****************************************************************/
8
/** FUNKTIONS-HEADER **/
9
/****************************************************************/
10

11
/****************************************************************/
12
/** MAIN-FUNKTION **/
13
/****************************************************************/
14
#define SET_BIT(PORT, BITNUM)    ((PORT) |=  (1<<(BITNUM)))
15
#define CLEAR_BIT(PORT, BITNUM)  ((PORT) &= ~(1<<(BITNUM)))
16
#define TOOGLE_BIT(PORT, BITNUM) ((PORT) ^=  (1<<(BITNUM)))
17

18
int main(void)
19

20
{
21
/** Konfigurationen **/
22

23
DDRC = 0b00001111;
24
DDRB = 0b00000110;
25
DDRD = 0b00000010;
26

27
CLEAR_BIT(PORTB,2);  //Output Enable 
28
SET_BIT(PORTC,3);  //SDI
29

30
//Ebenen
31
SET_BIT(PORTC,2);
32
SET_BIT(PORTC,1);
33
CLEAR_BIT(PORTC,0);
34

35

36
/** Hauptschleife **/
37
  while(true)
38
  {
39
          //CLK
40
CLEAR_BIT(PORTB,1);
41
          _delay_ms(1000);
42
          SET_BIT(PORTB,1);
43
          _delay_ms(1000);
44
          
45
  
46
  
47
  }
48

49
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.