ATTINY24V 10PU und 74HC595

OP #2088452
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
#2088467
Lesenswert?
• ▲
▼
Die Schaltung ist falsch. In die Digits gehören Treibertransistoren und 
nach den Segmenttreiber Stromeinstellwiderstände.


Zum Multiplex:
Du brauchst einen Timerinterrupt, sonst wird das nix.
Und schreib Dir ne Ausgabefunktion, die ein Byte rausschiebt und 
verwende diese.


Peter
OP #2088475
Lesenswert?
• ▲
▼
Ok da baue ich dann noch Transistoren mit ein. Ich hatte früher aber mal 
eine ähnliche Schaltung am LPT wo die LEDs auch direct am Register 
hingen.
Eine Funktion zum rausschieben habe ich auch, aber ich wollte zum Test 
erstmal alle einschalten um zu schauen ob es überhaupt geht.

Grüße
Ronald
Persönliche Seite #2088479
Lesenswert?
• ▲
▼
Siehe LED-Matrix und Porterweiterungen, auch 
AVR-Tutorial: Timer könnte nützlich sein. :)

Und nein, 74HC* läuft problemlos mit mehreren dutzend Mhz. Das 
Datenblatt zu deinem Chip verrät dir, für welche Tempi eine saubere 
Funktion garantiert ist. Für's erste würd ich dir mal empfehlen, 
erprobte functions in dein Programm einzubauen; du kannst dann immer 
noch feintuning machen (Speed/Size).

Viel Spass!
OP #2091525
Lesenswert?
• ▲
▼
ich habe jetzt die Schaltung umgebaut und Transistoren eingebaut sieht 
in etwas jetzt so aus:
http://www.mikrocontroller.net/wikifiles/6/64/LED_Matrix_8x5.png


doch leider habe ich die Vermutung, das mein Chip kaputt ist wenn ich 
die beiden folgenden Programme ausführen lasse bekomme ich an PA0 
0,06Volt statt 0 und 3.
1
int main()
2
{
3
   DDRA = (1 << PA0);
4
   PORTA = (1 << PA0);
5
   while(true) {}
6
   
7
   return 0;
8
}
1
int main()
2
{
3
   DDRA = 0;
4
   PORTA = 0;
5
   while(true) {}
6
   
7
   return 0;
8
}
laut AVR Studio gibt es beim Flaschen keine Fehler. kann ich den Chip 
irgendwie testen oder auf Werkszustand zurück setzen(außer dem Erase 
Button)? Ich habe noch einen neuen ATTiny13 da und werde den mal 
einbauen und testen.
Grüße
Ronald

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.