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


von Hakim (Gast)


Angehängte Dateien:

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

von Der T. (Gast)


Lesenswert?

Mir fällt da spontan "Totzeit" ein..

von Roland Praml (Gast)


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

von Hakim (Gast)


Lesenswert?

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

von Hakim (Gast)


Lesenswert?

Danke Roland, ich werde es versuchen.

von Peter D. (peda)


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

von Hakim (Gast)


Lesenswert?

@Peter. Danke sehr für die schnelle Antwort.

von Hakim (Gast)


Lesenswert?

Danke Euch Jungs. Es funktionniert.
Hakim

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
Noch kein Account? Hier anmelden.