Hi,
ich bin neu in der Szene und baue jetzt seit einer Woche eine meiner LED
Matrix. Der Aufbau ging recht schnell, doch leider klappt die
Ansteuerung nicht. Ich suche jetzt schon seit 3 Tagen nach möglichen
Ursachen kann aber nirgendwo etwas finden, was ich falsch gemacht haben
könnte. Den Aufbau meiner Schaltung habe ich abgehangen. Das Programm
sieht wie folgt aus:
1 | #define DATA_OUT PB0 // SI
|
2 | #define SHIFT_DATA PB1 // SCK
|
3 | #define SET_DATA PB2 // RCK + G
|
4 |
|
5 | int main()
|
6 | {
|
7 | DDRB = (1 << DATA_OUT) | (1 << SET_DATA) | (1 << SHIFT_DATA);
|
8 |
|
9 | PORTB = 0;
|
10 | for (int i = 0; i < 8; ++i) {
|
11 | // setze 0
|
12 | PORTB &= ~(1 << DATA_OUT);
|
13 | // shift
|
14 | PORTB |= (1 << SHIFT_DATA);
|
15 | PORTB &= ~(1 << SHIFT_DATA);
|
16 | }
|
17 | for (int i = 0; i < 16; ++i) {
|
18 | // setze 1
|
19 | PORTB |= (1 << DATA_OUT);
|
20 | // shift
|
21 | PORTB |= (1 << SHIFT_DATA);
|
22 | PORTB &= (~1 << SHIFT_DATA);
|
23 | }
|
24 | // kopiere shift register ins storage register and activiere output
|
25 | PORTB |= (1 << SET_DATA);
|
26 | PORTB &= ~(1 << SET_DATA);
|
27 |
|
28 | while(1){}
|
29 |
|
30 | return 0;
|
31 | }
|
Der Tiny läuft mit 8MHz, ist das eventuell zu schnell für den 74HC595?
Zum Programieren nutze ich einen USB-ISP Adapter von ebay(~16€) manchmal
kann ich nur mit 5v flashen da sonst beim Vergleichen die Daten
unterschiedlich sind.
Danke
Ronald