RGB LED 3x3x3

Gast #4118352
Lesenswert?

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 #4119608
Lesenswert?

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

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