www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega88 + IC4094 +LEDs


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

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

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define F_CPU 18432000UL  //Quarzfrequenz in Hz

#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.
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).

Autor: Nein (Gast)
Datum:

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

Autor: Hc Zimmerer (mizch)
Datum:

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

Autor: Nein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, verstanden.So dachte ich mir das auch. Also sollten doch die LEDs 
alle AN sein nach Ablauf.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.  Warum sie wieder ausgehen, kann ich Dir nicht sagen.  Was aber 
auffällt, ist, dass Dein Hauptprogramm endet - ein Zustand, den eine CPU 
nicht kennt.  Sie läuft weiter.  Mach' mal einen for(;;); ans Ende (oder 
while(1);).

Autor: Jo Sen (tigermatze)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe vor kurzem ein 4094 Schieberegister für das Projekt BlinkenLEDs 
simuliert. Ich habe das Projekt mal wieder zum Leben erweckt und einen 
MC zur Steuerung angeschlossen.
Im Anhang ist die Funktionsweise in einem Ablaufdiagramm dargestellt.

Autor: Nein (Gast)
Datum:

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

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.