www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED-Anzeige (Hello World erscheint doppelt)


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo erstmal,

ich habe vor mir eine LED-Anzeige 16x48, 1/8 multiplex. Zur Anseuerung 
benutze ich ein ARM LPC2378. Am Port 2 sind 3 Pins zu einem 3 zu 8 
Dekoder (74HCT138 mit 5V versorgt) rausgeführt. Nun mein Problem ist 
dass die Schrifft auf der Anzeige schwach dupliziert wird (sehe Anhang). 
Hat jemand schon mal so ein Problem gehabt? wie kriege das weg.
wäre dankbar für jede Hilfe.

Anbei ist die Interrupt Service Routine für
den Zeilenwechsel.
//-------------------------------------------
void isr_strobe(void)
{
  static int cnt = 0;
  static int diag_led_status = 1;

  T1TC = 0;
  T1IR = 0xFF;
  FIO2CLR = LATCH;   // DISABLE LATCH
  FIO2SET = STROBE;  // SET STROBE
  FIO2SET = (row& 0x00000007);
  FIO2CLR = ((~row) & 0x00000007);
  row++;
  if(row== 8)
    row = 0;
  FIO2SET = LATCH;   // ENABLE LATCH
  FIO2CLR = STROBE ; // RESET STROBE
  send_event_sync(); // START DATA TRANSFER
  cnt++;
  if(cnt==300)
  {
    cnt = 0;
    if(diag_led_status)
    {
      LED1_ON();
      diag_led_status = 0;
    }
    else
    {
      LED1_OFF();
      diag_led_status = 1;
    }
  }
}

//--------------------------------------------------------------------
Gruß.
Hakim

Autor: Der Techniker (_techniker_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir fällt da spontan "Totzeit" ein..

Autor: Roland Praml (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- Zeilentreiber beschreiben
- ein paar µS warten
- Spalten beschreiben
- ein paar ms warten
- Spalten mit 0en beschreiben, insb dieser Schritt ist wichtig!
- ein paar µS warten
- Zeilentreiber mit nächster Spalte beschreiben

Gruß
Roland

Autor: Hakim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort. was für n Totzeit und wo soll ich diese 
einstellen?
Hakim

Autor: Hakim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Roland, ich werde es versuchen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt 2 Standardfehler beim Multiplexen:

1. Reihenfolgefehler

Die richtige Reihenfolge muß sein:
- Zeilentreiber aus
- neues Spaltenmuster setzen
- nächsten Zeilentreiber ein
oder:
- alle Spalten aus
- Zeilentreiber wechseln
- neues Spaltenmuster setzen

2. Trägheit

Bei hoher Multiplexfrequenz ist entscheidend, ob die Treibertransistoren 
in Emitter- oder Kollektorschaltung arbeiten.
Die Emitterschaltung schaltet sehr gemächlich (Miller-Kapaziät), da muß 
man dann noch zusätzliche Delays in die Dunkelphase einfügen.


Peter

Autor: Hakim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter. Danke sehr für die schnelle Antwort.

Autor: Hakim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Euch Jungs. Es funktionniert.
Hakim

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.