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
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
@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
Könnte es daran liegen?
1 | for(i=0;i<=8;i++) |
2 | {
|
3 | SPI_Data_Transmit(LED_Data[i]); |
4 | schlaf(75); |
5 | }
|
i hat nur 8 Felder , du zählst aber bis 9.
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
@ 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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.