www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik seriell 89c2051 -> 89c2051


Autor: MarkoMarko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

ich habe zwei seprate controllerplatinen, welche ich über die uart's
verbunden habe.

der erste controller sendet zeichen
der zweite controller empfängt die zeichen und sie werden auf ein
display ausgegben

es funktioniert auch ganz gut.
zum test habe ich das alphabet gesendet.

nur es werden ABCFILORUX angezeigt.
d.h. nach den buchstabe ABC wird dann nur noch jeder dritte buchstabe
angezeigt.(wobei ...lustiger name ABCFILORUX)nun ja...;)

weiß jemand woran's ligen kann?

markomarko

Autor: Rüdiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wie sieht es mit deinem empfangsbuffer aus ?
wie schnell fragst du diesen ab ?

Rüdiger

Autor: MarkoMarko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weiß nicht.

die nachfolgende funktion läuft in er endlosschleife.
kannst du sie nachvollziehen?



txt_empf()
{
   int b=0;


    while(!(SCON&0x01));
    RECIEVE_TXT[0]=SBUF;
    SCON&=0xfe;


    RS=DISP_DATEN;
    while(RECIEVE_TXT[b]!=0x00)
    {
      daten_port = RECIEVE_TXT[b];
      DISP_enable=1;wait(10);DISP_enable=0;
      daten_port = RECIEVE_TXT[b++]<<4;
      DISP_enable=1;wait(10);DISP_enable=0;
    }

}

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein LCD ist zu langsam und ignoriert ein paar Zeichen, da du diese
vermutlich zu schnell sendest.
Abhilfe: Empfangspuffer + Busy des LCD abfragen

Autor: MarkoMarko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, fehler behoben.

ich hatte voher _nop()_ statt wait(10)
und wait(10) ist wohl zu langsam.

hatte ich übersehen.

sorry für den verschwendeten platz :)

markomarko aka FILORUX

Autor: MarkoMarko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@benedikt

ja mit busy werde ichs auch noch probieren.
mit wait(1) wird jetzt noch jeder 8. buchstabe NICHT angezeigt.

danke euch

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie groß ist denn Dein Display ?

Ich würde einen kompletten Textpuffer im RAM anlegen.

Dann kann das Einlesen und die LCD-Ausgabe völlig unabhängig
voneinander erfolgen.

Für Laufschriften sind die LCDs eh zu träge.


Peter

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.