LCD will nicht

Gast #70433
Lesenswert?

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 #70434
Lesenswert?

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 #70435
Lesenswert?

@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 #70437
Lesenswert?

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 #70438
Lesenswert?

@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 #70439
Lesenswert?

@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 #70441
Lesenswert?

@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 ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren