Atmega88 + IC4094 +LEDs

Gast #1520798
Lesenswert?

Ich benutze einen Atmega88 mit einem IC4094 um 8LEDs anzusteuern.

Kurz zum Aufbau:
-3Pins vom mega88 [PD0-PD2] führen zum IC4094 [Stroke,Data,Clock]
-Am 4094 sind ,Pin15 und Pin16 mit Vcc des mega88 verbunden, Pin8 mit 
Masse
-Q1 bis Q8 des 4094 sind mit LED und Vorwiderstand zu Vcc des mega88 
verbunden

Mein Problem:
Die Leds leuchten der Reihe nach sehr schnell <1s und dannach sind sie 
Aus. Gewollt ist aber das sie dannach An bleiben und die Geschwindigkeit 
langsamer ist.

Ist mein erster Versuch mit einem IC4094 davor habe ich nur LEDs An und 
Ausgeschaltet.Bitte um Nachsicht.

Quellcode liegt im Anhang bei.

Danke für eure Hilfe
Angehängte Dateien:
#1520838
Lesenswert?

1
#define F_CPU 18432000UL  //Quarzfrequenz in Hz
2

3
#define delay_ms(ms) _delay_loop_2(ms * (F_CPU/4000))

Macht pro ms ein Argument von 4608.  Das Argument von _delay_loop_2 ist
lt. Dokumentation zur avr-libc 16 Bit groß, also maximal 65535.
1
delay_ms(500);

Nun rechne mal, wie groß das Argument für _delay_loop_2 hier wird (und 
was bei Beschneidung auf 16 Bit davon übrig bleibt).
Gast #1520846
Lesenswert?

besten Dank, damit ist die Sache mit der Geschwindigkeit erledigt :).

Noch das Verständisproblem mit dem 4094er. Muss ich nach einem Stroke 
wieder die kompletten 8bits schieben? Jedoch glaub ich beim Starten 
gesehen zu haben das alle mal in der Zeit mindestens einmal An waren 
obwohl ich nach einem Clockbefehl sofort wieder Stroke toggle.

Ein weiteres Problem liegt vllt im Aufbau vor.
#1520851
Lesenswert?

Vielleicht nennen wir den "Stroke" einfach korrekt "Strobe".

Mit dem Strobe wird der momentane Zustand in die Ausgangs-Latches 
geschrieben.  Gibst Du also einen Strobe nach jedem Takt, siehst Du 
schön, wie die Daten durchmarschieren.  Wenn der Strobe alle 8 Takte 
kommt, kannst Du ein komplettes LED-"Bild" übertragen und erst, wenn die 
Übertragung fertig ist, erscheint es am Ausgang.
Gast #1520965
Lesenswert?

Danke für das Diagramm. Sieht so aus als könnte ich Strobe auch direkt 
auf High legen ohne es nach jedem clock ein/aus zu schalten. Versuche 
ich morgen mal zusammen mit der endlos Schleife am ende.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren