LCD will nicht

Gast
Hallo,

Deine LCD-Enble Routine:
lcdan:
  sbi portb,2      ;enable auf high
  sbi portb,3
  nop        ;3 Taktzyklen warten
  nop
  nop
  nop
  nop
  nop
  cbi portb,2      ;enable wieder low
  cbi portb,3
  ret

LCD-Enable-Routine aus dem Tutorium:
;erzeugt den Enable-Puls
lcd_enable:
           sbi PORTD, 5                 ;Enable high
           nop                          ;3 Taktzyklen warten
           nop
           nop
           cbi PORTD, 5                 ;Enable wieder low
           ret                          ;Und wieder zurück


Wieso betätigst Du zwei Pins innerhalb der Enable-Routine?

GRuß
Gast
Steht sowas echt in einem Tutorial?:

> nop ;3 Taktzyklen warten
> nop
> nop

Will ja nicht läßtern, aber wie wäre es mit:

>     jmp L1
> L1: nop

Spart immerhin einen Befehl (kann ja schonmal knapp werden. Immerhin
sind wir hier bei Controllern g). Mal abgesehen davon, daß
'Taktzyklen' nur Zyklen sind und keine definierten Zeiten (wie etwa
10ms). Aber so langsam wie Atmel ist, dürfte man damit noch etwas
auskommen (berichtigt mich, aber sind die schnellsten nicht gerade mal
bei 16MHz gähn ?).

Grüße,
André
Gast
@chris

ich erzeuge zwei enable impulse, weill das Dislay zwei Controller hat
(4*27 Zeilen).

@andre

Welche Controller programmierst du den so?
Das mit dem Platz ist zwar gerechtfertig aber im Moment hat mein 2313
noch genug davon frei.


Ich habe (fast) dieselbe Routine auch auf einem Mega16 ausprobiert und
da funktioniert es wunderbar.

Mfg

Kutz
Gast
Wieso sind Taktzyklen eigentlich keine definierten Zeiten? Wenn mein
Controller auf 8Mhz rennt beträgt ein Zyklus ziemlich genau 125ns. Das
ist in diesem Fall schon definiert.
Gast
g

Die berühmten 4x27-Displays von eBay? Mit den 8 Gummitasten?
Naja. Ich mach momentan auch viel mit AVRs rum. Hatte damals auch
andere. Aber ich will hier keinen Flamewar anfangen.

Werde demnächst meinen eigenen Controller entwickeln (auch der AVR war
mal eine Arbeit von Studenten glaube ich). Bin zwar kein Student mehr,
will aber von yC Richtung FPGA schwenken.

Grüße,
André
Gast
@Kutzi:

Leider ist der code von der Taktfrequenz abhängig. Bei 4MHz hat man
250ns/Zyklus bei 16MHz sind das nur noch 62,5ns/Zyklus. Wenn Atmel
jetzt mal auf die Idee kommt schnellere AVRs zu bauen (oder mit USB
träum) geht plötzlich nix mehr.

Grüße,
André
Gast
@Kutzi:

Nachtrag:
Natürlich ist der Code für Dich an der Stelle korrekt, da Du ja weißt
daß es sich um 8MHz handelt. Aber in einem Tutorial ist es schon
irreführend. Oder man weißt halt immer im Quellcode darauf hin, daß es
nur für die Frequenz x gilt. Wenn sonst einer "Copy&Paste" macht mit
einem AVR 33MHz (gibt es ja nicht), geht nix ;-(

Grüße,
André
Gast
@Kutzi:
Theoretisch kannste eine alte Fernbedienung kaputtschneiden.

Eine Frage noch: Bei wem haste das Display gekauft und was haste
bezahlt? Die Preise schwanken bei eBay ziemlich stark ;-)
Gast
Na super und ich hab dafür 12€ hingblättert. Wieder mal schlecht
gegoogelt und das obwohl mir der Shop nicht unbekannt war. Nja was
solls bumm...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.