mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega16->74HC595->ULN2003A macht Probleme


Autor: Christoph (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe ein kleines Programm für ein Lauflicht
programmiert, nur um zu testen ob ich ein
74HC595 ansteuern kann. Habe hier schon viele
Beiträge zum 595 gelesen und dem Bild
entsprechend aufgebaut:
http://www.mikrocontroller.net/attachment/4937/neu-1.jpg

Leider läuft das nicht so wie ich will...
7 LEDs Lauflicht fängt bei LED1
an und läuft bis LED7 durch, dann leuchtet kurz LED3 und
Lauflicht fängt wieder bei LED1 an.
Ich denke, dass das Problem irgendwo in der SW
zu finden ist, habe aber grade voll nen Brett
vorm Kopp und komme einfach nicht weiter...
Habe es probiert, die einzelnen Daten 0x00,0x01,0x02 ....
manuell zu übertragen, das funktioniert einwandfrei,
aber sobald ich das in einer for(...){...} laufen lasse
geht es nicht mehr und LED3 geht immer kurz an :(
Programm ist im Anhang !

Zur Hardware:
ATMega16 -> 74HC595 -> ULN2003A -> LED-Bar

74HC595:
Pin    Verbunden mit
1  QB    ULN2003A IN2
2  QC    ULN2003A IN3
3  QD    ULN2003A IN4
4  QE    ULN2003A IN5
5  QF    ULN2003A IN6
6  QG    ULN2003A IN7
7  QH
8  GND    GND
9  QH*
10 /SCLR  VCC
11 SCK    µC PB7(SCK)
12 RCK    µC PB4(SS)
13 /G    µC PB4(SS)
14 SI    µC PB5(MOSI)
15 QA    ULN2003A IN1
16 VCC    VCC

ULN2003A:
Ausgänge Out1-Out7 über 150R auf Kathode
der einzelnen LEDs der LED-Bar

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph wrote:

> 13 /G    µC PB4(SS)

Hab deinen Quelltext nicht angeschaut, aber als erster Tipp: leg mal den 
/G Eingang fest auf Masse.

/Ernst

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christop

CPHA und CPOL stimmen nicht, das 74HC595 arbeitet anders. Setz mal 
beides auf 0. Ausserdem ist dein Schlaf Funktion Mist, lass den Unsinn 
mit den Floating Point Zahlen! Normale INT sind hier das Mittel der 
Wahl.

MfG
Falk

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte es daran liegen?
for(i=0;i<=8;i++)
    {
      SPI_Data_Transmit(LED_Data[i]);
      schlaf(75);
    }
i hat nur 8 Felder , du zählst aber bis 9.

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oha,
da ist ja schon ne ganze Menge Mist passiert :(
Jo stimmt Float sollte man stets vermeiden, schon klar,
habe nicht drauf geachtet, habe das aus einem meiner älteren Codes
kopiert...CPOL und CPHA hatte ich zuvor auf 0,
das die auf 1 sind habe ich aus dem Programmcode vom Thread
Beitrag "HC595 ansteuern in C"
und das /G mit auff SS gelegt ist aus dem oben schon erwähnten 
Schaltplan...


Dann werde ich mal das alles ändern :)

Habt vielen Dank für eure "strengen" raschen Blicke ;)
super hier :D

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Christoph (Gast)

>kopiert...CPOL und CPHA hatte ich zuvor auf 0,
>das die auf 1 sind habe ich aus dem Programmcode vom Thread

Naja, ich hab nochmal nachgeschaut. Es würde auch funktioieren mit CPHA 
und CPOL auf 1.

MFG
Falk

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.