mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTINY24V 10PU und 74HC595


Autor: Ronald G. (ronald_g)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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:
#define DATA_OUT PB0 // SI
#define SHIFT_DATA PB1 // SCK
#define SET_DATA PB2 // RCK + G

int main()
{
  DDRB = (1 << DATA_OUT) | (1 << SET_DATA) | (1 << SHIFT_DATA);

  PORTB = 0;
  for (int i = 0; i < 8; ++i) {
    // setze 0
    PORTB &= ~(1 << DATA_OUT);
    // shift
    PORTB |= (1 << SHIFT_DATA);
    PORTB &= ~(1 << SHIFT_DATA);
  }
  for (int i = 0; i < 16; ++i) {
    // setze 1
    PORTB |= (1 << DATA_OUT);
    // shift
    PORTB |= (1 << SHIFT_DATA);
    PORTB &= (~1 << SHIFT_DATA);
  }
  // kopiere shift register ins storage register and activiere output
  PORTB |= (1 << SET_DATA);
  PORTB &= ~(1 << SET_DATA);
  
  while(1){}

  return 0;
}

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ronald G. (ronald_g)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tom M. (tomm) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Ronald G. (ronald_g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe jetzt die Schaltung umgebaut und Transistoren eingebaut sieht 
in etwas jetzt so aus:
http://www.mikrocontroller.net/wikifiles/6/64/LED_...


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.
int main()
{
   DDRA = (1 << PA0);
   PORTA = (1 << PA0);
   while(true) {}
   
   return 0;
}
int main()
{
   DDRA = 0;
   PORTA = 0;
   while(true) {}
   
   return 0;
}
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.