LED-Anzeige (Hello World erscheint doppelt)

Gast #1248050
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
Angehängte Dateien:
Gast
- 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
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.